--- - name: Deploy smtp4dev with Docker Compose hosts: ubuntu become: true vars: required_service: smtp4dev tasks: - name: Check if host has smtp4dev service ansible.builtin.set_fact: has_smtp4dev_service: "{{required_service in services}}" - name: Skip hosts without smtp4dev service ansible.builtin.meta: end_host when: not has_smtp4dev_service - name: Create smtp4dev group ansible.builtin.group: name: "{{smtp4dev_group}}" - name: Create smtp4dev user ansible.builtin.user: name: "{{smtp4dev_user}}" comment: "smtp4dev" group: "{{smtp4dev_group}}" system: true - name: Add group smtp4dev to keeper_user ansible.builtin.user: name: "{{keeper_user}}" groups: "{{smtp4dev_group}}" append: true - name: Create smtp4dev directory ansible.builtin.file: path: "{{smtp4dev_directory}}" owner: "{{smtp4dev_user}}" group: "{{smtp4dev_group}}" state: directory mode: '750' - name: Template docker-compose file ansible.builtin.template: src: docker-compose.yml.j2 dest: "{{smtp4dev_directory}}/docker-compose.yml" owner: "{{smtp4dev_user}}" group: "{{smtp4dev_group}}" mode: '550' - name: Reset SSH connection to apply group changes meta: reset_connection - name: Start smtp4dev service community.docker.docker_compose_v2: project_src: "{{smtp4dev_directory}}" state: present pull: always