Files
Internal-apps/deploy-compos-prowler.yml

62 lines
1.7 KiB
YAML
Executable File

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