#SPDX-License-Identifier: MIT-0 --- # tasks file for reverseproxy - name: Gather service information from all hosts setup: delegate_to: "{{ item }}" delegate_facts: true loop: "{{ groups['all_servers'] }}" - name: Build service registry from all hosts set_fact: all_services: "{{ all_services | default([]) + hostvars[item].services | default([]) | map('combine', {'backend_host': item}) | list }}" loop: "{{ groups['all_servers'] }}" - name: Debug service registry debug: var: all_services - name: Create docker compose directory file: path: "{{ docker_compose_dir }}" state: directory mode: '0755' - name: Create docker volume directories file: path: "{{ docker_volume_dir }}/traefik/{{ item }}" state: directory mode: '0755' loop: - letsencrypt - name: Generate traefik static configuration template: src: traefik.yml.j2 dest: "{{ docker_compose_dir }}/traefik.yml" mode: '0644' notify: restart traefik - name: Generate traefik services configuration for discovered services template: src: services.yml.j2 dest: "{{ docker_compose_dir }}/services.yml" mode: '0644' notify: restart traefik - name: Create docker-compose file for traefik template: src: docker-compose.yml.j2 dest: "{{ docker_compose_dir }}/docker-compose.yml" mode: '0644' - name: Start traefik container docker_compose: project_src: "{{ docker_compose_dir }}" state: present