55 lines
1.3 KiB
YAML
55 lines
1.3 KiB
YAML
---
|
|
- name: create directory
|
|
file:
|
|
path: "{{ www_home }}/traefik"
|
|
state: directory
|
|
owner: "{{ www_user }}"
|
|
group: "{{ www_group }}"
|
|
|
|
- name: check if acme file exists
|
|
stat:
|
|
path: "{{ www_home }}/traefik/acme.json"
|
|
register: acme_file
|
|
|
|
- name: create acme file if does not exists
|
|
file:
|
|
path: "{{ www_home }}/traefik/acme.json"
|
|
state: touch
|
|
mode: 0600
|
|
owner: "{{ www_user }}"
|
|
group: "{{ www_group }}"
|
|
when: acme_file.stat.exists == False
|
|
|
|
- name: add config file
|
|
template:
|
|
src: traefik.yml.j2
|
|
dest: "{{ www_home }}/traefik/traefik.yml"
|
|
mode: 0600
|
|
owner: "{{ www_user }}"
|
|
group: "{{ www_group }}"
|
|
|
|
- name: create network
|
|
docker_network:
|
|
name: web
|
|
|
|
- name: create container
|
|
docker_container:
|
|
name: traefik
|
|
image: traefik:2.4
|
|
restart_policy: unless-stopped
|
|
recreate: true
|
|
networks:
|
|
- name: web
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
volumes:
|
|
- "{{ www_home }}/traefik/traefik.yml:/etc/traefik/traefik.yml"
|
|
- "{{ www_home }}/traefik/acme.json:/acme.json"
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
labels:
|
|
traefik.enable: "true"
|
|
traefik.http.routers.dashboard.rule: Host(`{{ traefik_dashboard_host }}`)
|
|
traefik.http.routers.dashboard.entryPoints: http
|
|
traefik.http.routers.dashboard.service: api@internal
|