--- - 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