--- - name: Create folder structure file: path: "{{ item }}" state: directory with_items: - "{{ data_dir }}/traefik" - "{{ data_dir }}/traefik/data" - "{{ data_dir }}/traefik/config" - name: Pull latest Traefik Docker Image docker_image: name: traefik tag: latest source: pull # create static configuration for traefik - name: Create Traefik Configuration template: src: config.yml.j2 dest: "{{ data_dir }}/traefik/traefik.yml" # create dynamic provider files for each system - name: Create Traefik Dynamic File (Local) template: src: local-dynamic.yml.j2 dest: "{{ data_dir }}/traefik/dynamic.yml" when: server == "jade" or server == "nas" - name: Create Traefik Dynamic File (Remote) template: src: remote-dynamic.yml.j2 dest: "{{ data_dir }}/traefik/dynamic.yml" when: server == "jackson" - name: Create Traefik Dynamic File (Remote 2) template: src: remote-ash-1.yml.j2 dest: "{{ data_dir }}/traefik/dynamic.yml" when: server == "ash-1" - name: Deploy Traefik Docker Container docker_container: name: traefik image: traefik restart_policy: unless-stopped recreate: true command: - --providers.file.directory=/config published_ports: - "80:80" - "443:443" - "8080:8080" env: CF_API_EMAIL: "{{ TRAEFIK_CF_API_EMAIL }}" CF_DNS_API_TOKEN: "{{ TRAEFIK_CF_API_KEY }}" volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - "{{ data_dir }}/traefik/data:/data" - "{{ data_dir }}/traefik/traefik.yml:/traefik.yml" - "{{ data_dir }}/traefik/dynamic.yml:/dynamic.yml" networks: - name: "{{ docker_network_name }}"