#################### # - Deployment #################### - hosts: leader become: "true" vars: stack_name: "site-support" stack_configs: - "site-support__security.txt" tasks: #################### # - Stop the Stack #################### - name: "Stop Stack: {{ stack_name }}" community.docker.docker_stack: state: "absent" absent_retries: 15 name: "{{ stack_name }}" #################### # - Network Creation #################### - name: "Create Network: mesh_public" community.docker.docker_network: state: "present" name: "mesh_public" driver: "overlay" scope: "swarm" attachable: true appends: true #################### # - Config Creation #################### - name: "Create Docker Configs" community.docker.docker_config: state: "present" name: "{{ item }}" data: "{{ lookup('template', './configs/' ~ item) | b64encode }}" data_is_b64: "true" with_items: "{{ stack_configs }}" #################### # - Stack Deployment #################### - name: "Upload Stack to /tmp" template: src: "./docker-compose.yml" dest: "/tmp/{{ stack_name }}.yml" owner: "root" group: "root" mode: "0640" - name: "Deploy Stack: {{ stack_name }}" community.docker.docker_stack: state: "present" prune: "true" name: "{{ stack_name }}" compose: - "/tmp/{{ stack_name }}.yml" - name: "Delete /tmp Stack" ansible.builtin.file: path: "/tmp/{{ stack_name }}.yml" state: "absent"