You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
2.2 KiB
62 lines
2.2 KiB
---
|
|
- 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
|