--- - name: Deploy and start Movie-DB Application hosts: all become: False gather_facts: True vars: project_name: movie-db install_dir: "/opt/{{ project_name }}" tasks: - name: Create installation directory ansible.builtin.file: path: "{{ install_dir }}" state: directory mode: '0755' - name: Copy project files ansible.builtin.copy: src: "{{ item }}" dest: "{{ install_dir }}/" owner: root group: root mode: '0644' with_items: - cert.pem - docker-compose.yml - Dockerfile - genre_list - imdb_suche.py - key.pem - main.py - moviedb_func.py - regie_name.csv - requirements.txt - name: Copy templates directory ansible.builtin.copy: src: templates/ dest: "{{ install_dir }}/templates/" owner: root group: root - name: Start application with Docker Compose community.docker.docker_compose_v2: project_src: "{{ install_dir }}" project_name: "{{ project_name }}" recreate: always register: compose_output - name: Get container info community.docker.docker_container_info: name: - "{{ project_name }}-web-1" - "{{ project_name }}-db-1" register: container_info - name: Verify that web and db services are running ansible.builtin.assert: that: - container_info.containers is defined - (container_info.containers | selectattr('name', 'equalto', '{{ project_name }}-web-1') | first).State.Running - (container_info.containers | selectattr('name', 'equalto', '{{ project_name }}-db-1') | first).State.Running