--- - name: Ensure data directories exist ansible.builtin.file: path: "{{ traefik_container_dir }}/data/{{ item }}" state: directory mode: '0755' loop: - "traefik" - "certs" - "logs" - "traefik/config.d" become: false - name: Ensure log files exist ansible.builtin.file: path: "{{ traefik_container_dir }}/data/logs/{{ item }}" state: touch mode: '0644' loop: - "traefik.log" - "access.log" become: false - name: Deploy Traefik configuration files ansible.builtin.template: src: "{{ item.src }}" dest: "{{ traefik_container_dir }}/data/{{ item.dest }}" mode: '0644' loop: - { src: 'traefik.yml.j2', dest: 'traefik/traefik.yml' } - { src: 'default.yml.j2', dest: 'traefik/config.d/default.yml' } - { src: 'hosts.yml.j2', dest: 'traefik/config.d/hosts.yml' } become: false - name: Deploy Docker Compose and .env files ansible.builtin.template: src: "{{ item.src }}" dest: "{{ traefik_container_dir }}/{{ item.dest }}" mode: '0644' loop: - { src: 'docker-compose.yml.j2', dest: 'docker-compose.yml' } - { src: '.env.j2', dest: '.env' } become: false - name: Ensure Docker network exists community.docker.docker_network: name: traefik state: present docker_host: "unix:///run/user/1000/docker.sock" become: false - name: Start Traefik container community.docker.docker_compose_v2: project_src: "{{ traefik_container_dir }}" pull: always docker_host: "unix:///run/user/1000/docker.sock" become: false