--- - name: haproxy-docker-service | Manage the composition of haproxy as a docker swarm service tags: ['haproxy', 'docker_haproxy', 'docker_swarm', 'docker'] block: - name: haproxy-docker-service | Create the local haproxy configuration directory ansible.builtin.file: dest=/etc/haproxy state=directory mode='0755' - name: haproxy-docker-service | Create the local directory for the socket volume ansible.builtin.file: dest={{ haproxy_docker_socket_dir }} state=directory mode='0755' - name: haproxy-docker-service | Install a bare haproxy configuration if there's none ansible.builtin.copy: src=haproxy-sample.cfg dest=/etc/haproxy/haproxy.cfg mode='0644' force=no - name: haproxy-docker-service | Manage the composition of haproxy as a docker swarm service when: docker_swarm_manager_main_node is defined and docker_swarm_manager_main_node | bool tags: ['haproxy', 'docker_haproxy', 'docker_swarm', 'docker'] block: - name: haproxy-docker-service | Create the destination directory of the haproxy docker compose file ansible.builtin.file: dest={{ haproxy_docker_compose_dir }} state=directory mode='0755' - name: haproxy-docker-service | Install the docker compose file ansible.builtin.template: src=haproxy-docker-stack.yml.j2 dest={{ haproxy_docker_compose_dir }}/docker-haproxy-stack.yml mode='0644' - name: haproxy-docker-service | Create the overlay network that will be joined by the proxied services community.docker.docker_network: name: '{{ item }}' driver: overlay scope: swarm loop: '{{ haproxy_docker_overlay_default_network + haproxy_docker_swarm_overlay_additional_networks }}' - name: haproxy-docker-service | Run the docker compose file to start the service community.docker.docker_stack: name: haproxy state: present compose: - '{{ haproxy_docker_compose_dir }}/docker-haproxy-stack.yml' run_once: true