--- - name: Deploy web-proxy with Docker and Traefik hosts: all become: yes tasks: - name: Create directory for web-proxy file: path: /mnt/docker/web-proxy/ state: directory mode: '0755' - name: Create docker-compose file copy: dest: /mnt/docker/web-proxy/docker-compose.yaml content: | version: "3" services: https-proxy: image: traefik:v2.9 container_name: https-proxy hostname: https-proxy restart: unless-stopped healthcheck: test: grep -qr "traefik" /proc/*/status || exit 1 interval: 1m timeout: 30s retries: 3 ports: - 9080:80 - 9443:443 command: - "--api=true" - "--api.dashboard=false" - "--api.insecure=false" - "--pilot.dashboard=false" - "--global.sendAnonymousUsage=false" - "--global.checkNewVersion=false" - "--accesslog=true" - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--entrypoints.http.address=:80" - "--entrypoints.http.http.redirections.entrypoint.to=https" - "--entrypoints.http.http.redirections.entrypoint.scheme=https" - "--entrypoints.https=true" - "--entrypoints.https.address=:443" - "--certificatesResolvers.letsencrypt.acme.email=it-admin@asmodee.de" - "--certificatesResolvers.letsencrypt.acme.storage=/etc/traefik/acme.json" - "--certificatesResolvers.letsencrypt.acme.httpChallenge.entryPoint=http" volumes: - ./traefik:/etc/traefik - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro - /var/run/docker.sock:/var/run/docker.sock:ro networks: default: name: build external: true - name: Run docker-compose ansible.builtin.command: chdir: /mnt/docker/web-proxy/ cmd: docker-compose up -d