62 lines
1.7 KiB
YAML
62 lines
1.7 KiB
YAML
---
|
|
- name: Deploy compos-prowler using Podman
|
|
hosts: internal-apps
|
|
become: true
|
|
|
|
tasks:
|
|
- name: Install required packages for Podman and Docker Compose compatibility
|
|
apt:
|
|
name: podman
|
|
state: present
|
|
|
|
- name: Create container network (postgres_nw) if it does not exist
|
|
podman_network:
|
|
name: postgres_nw
|
|
driver: bridge
|
|
|
|
- name: Create container output volume if it does not exist
|
|
podman_volume:
|
|
name: output
|
|
driver: local
|
|
|
|
- name: Copy compos-prowler.yaml file to internal-apps server
|
|
copy:
|
|
content: "{{ lookup('file', 'path/to/compos-prowler.yaml') }}"
|
|
dest: /home/user/compos-prowler.yaml
|
|
mode: '0644'
|
|
|
|
- name: Create a Podman service from the YAML file
|
|
podman_service:
|
|
container_name: compos-prowler
|
|
image: "{{ item.image }}"
|
|
ports:
|
|
- "{{ item.ports[0] }}"
|
|
volumes:
|
|
- "output:/tmp/prowler_api_output"
|
|
depends_on:
|
|
- postgres
|
|
- valkey
|
|
networks:
|
|
- postgres_nw
|
|
with_items:
|
|
- { name: api, image: prowlercloud/prowler-api }
|
|
- { name: ui, image: prowlercloud/prowler-ui }
|
|
- { name: postgres, image: postgres:16.3-alpine3.20 }
|
|
- { name: valkey, image: valkey/valkey:7-alpine3.19 }
|
|
- { name: worker, image: prowlercloud/prowler-api }
|
|
- { name: worker-beat, image: prowlercloud/prowler-api }
|
|
|
|
- name: Start the container
|
|
podman_container:
|
|
container_name: compos-prowler
|
|
state: started
|
|
|
|
- name: Wait for all containers to be up and running
|
|
wait_for:
|
|
host_pattern: "{{ item }}"
|
|
port: "{{ item.ports[0] }}"
|
|
timeout: 300
|
|
delay: 5
|
|
with_items:
|
|
- api
|
|
- ui |