--- - 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 - name: Create Traefik Configuration template: src: config.yml.j2 dest: "{{ data_dir }}/traefik/traefik.yml" - 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" labels: traefik.enable: "true" traefik.http.routers.traefik.service: traefik traefik.http.routers.traefik.rule: "Host(`traefik.fntz.net`)" traefik.http.routers.traefik.entrypoints: webSecure traefik.http.routers.traefik.tls.certresolver: letsencrypt traefik.http.services.traefik.loadbalancer.server.port: "8080" traefik.http.routers.jtraefik.service: jtraefik traefik.http.routers.jtraefik.rule: "Host(`traefik-jackson.fntz.net`)" traefik.http.routers.jtraefik.entrypoints: webSecure traefik.http.routers.jtraefik.tls.certresolver: letsencrypt traefik.http.services.jtraefik.loadbalancer.server.url: "http://jackson:8080" traefik.http.routers.nflproxy.service: nflproxy traefik.http.routers.nflproxy.rule: "Host(`nfl.fntz.net`)" traefik.http.routers.nflproxy.entrypoints: webSecure traefik.http.routers.nflproxy.tls.certresolver: letsencrypt traefik.http.services.nflproxy.loadbalancer.server.url: "http://172.16.0.25:5000" networks: - name: "{{ docker_network_name }}"