- name: Create install directory file: path: "{{ install_directory }}/traefik" state: directory owner: "{{ docker_user }}" mode: "{{ docker_compose_directory_mask }}" become: true - name: Copy docker-compose file to destination template: src: docker-compose.yml dest: "{{ install_directory}}/traefik/docker-compose.yml" owner: "{{ docker_user }}" mode: "{{ docker_compose_file_mask }}" validate: docker compose -f %s config become: true - name: Create config directory file: path: "{{ data_dir }}/traefik" state: directory owner: "{{ docker_user }}" mode: "{{ docker_compose_directory_mask }}" become: true - name: Install config template: src: traefik.yml dest: "{{ data_dir }}/traefik/traefik.yml" mode: "{{ docker_compose_file_mask }}" owner: "{{ primary_user }}" notify: restart traefik become: true - name: Create file provider directory file: path: "{{ data_dir }}/traefik/conf" state: directory mode: "{{ docker_compose_directory_mask }}" owner: "{{ primary_user }}" become: true - name: Install file providers template: src: "{{ item }}" dest: "{{ data_dir }}/traefik/conf/" mode: "{{ docker_compose_file_mask }}" owner: "{{ primary_user }}" with_fileglob: - "templates/conf/*" become: true - name: Create acme storage file file: path: "{{ data_dir }}/traefik/acme.json" state: touch mode: 0600 become: true - name: Start docker container community.docker.docker_compose_v2: project_src: "{{ install_directory }}/traefik" pull: always remove_orphans: yes