--- - name: Setup server hosts: all become: yes tasks: - name: Install required system packages apt: name: [ 'apt-transport-https', 'ca-certificates', 'software-properties-common', 'python3-pip', ] state: present update_cache: yes - name: Add Docker GPG apt Key apt_key: url: https://download.docker.com/linux/ubuntu/gpg state: present - name: Add Docker Repository apt_repository: repo: "deb [arch=amd64] https://download.docker.com/{{ ansible_system | lower }}/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} stable" state: present - name: Update apt and install Docker apt: name: [ 'docker-ce', 'docker-ce-cli', 'containerd.io', ] state: latest update_cache: yes - name: Add the Python client for Docker pip: name: [ 'docker', 'docker-compose' ] - name: Install docker-compose get_url: url : https://github.com/docker/compose/releases/download/1.29.2/docker-compose-Linux-x86_64 dest: /usr/local/bin/docker-compose mode: 'u+x,g+x' group: docker - name: Create Traefik directory file: path: "{{ working_dir }}/traefik" state: directory - name: Create Acme file file: path: "{{ working_dir }}/traefik/acme.json" state: touch mode: 0600 - name: Build Traefik config file template: src: ../templates/traefik.yml.j2 dest: "{{ working_dir }}/traefik/traefik.yml" - name: Create global network docker_network: name: web - name: Build Traefik docker-compose file template: src: ../templates/traefik-docker-compose.yml.j2 dest: '{{ working_dir }}/traefik/docker-compose.yml' - name: Run Traefik container community.docker.docker_compose: project_src: "{{ working_dir }}/traefik" build: yes files: - docker-compose.yml restarted: yes register: output - debug: var: output