- name: Create install directory file: path: /opt/traefik state: directory owner: "{{ docker_user.name }}" mode: "{{ docker_compose_directory_mask }}" become: true - name: Create config directory file: path: /opt/traefik/traefik state: directory mode: "{{ docker_compose_directory_mask }}" become: true - name: Install compose file template: src: files/docker-compose.yml dest: /opt/traefik/docker-compose.yml mode: "{{ docker_compose_file_mask }}" owner: "{{ docker_user.name }}" validate: /usr/bin/docker-compose -f %s config register: compose_file become: true - name: Install config template: src: files/traefik.yml dest: /opt/traefik/traefik/traefik.yml mode: "{{ docker_compose_file_mask }}" owner: "{{ docker_user.name }}" register: config_file become: true - name: Install file provider template: src: files/file-provider.yml dest: /opt/traefik/traefik/file-provider.yml mode: "{{ docker_compose_file_mask }}" owner: "{{ docker_user.name }}" register: file_provider become: true - name: Cycle container docker_compose: project_src: /opt/traefik pull: true remove_orphans: true remove_volumes: true state: "{{ item }}" when: compose_file.changed or config_file.changed or file_provider.changed loop: - absent - present