101 lines
2.2 KiB
YAML
101 lines
2.2 KiB
YAML
---
|
|
- name: Create Traefik installation directory
|
|
file:
|
|
path: "{{ traefik_install_dir }}"
|
|
state: directory
|
|
owner: root
|
|
group: root
|
|
mode: '0755'
|
|
tags:
|
|
- traefik-deploy
|
|
- directories
|
|
|
|
- name: Create Traefik data directory
|
|
file:
|
|
path: "{{ traefik_data_dir }}"
|
|
state: directory
|
|
owner: root
|
|
group: root
|
|
mode: '0755'
|
|
tags:
|
|
- traefik-deploy
|
|
- directories
|
|
|
|
- name: Create Traefik config directory
|
|
file:
|
|
path: "{{ traefik_config_dir }}"
|
|
state: directory
|
|
owner: root
|
|
group: root
|
|
mode: '0755'
|
|
tags:
|
|
- traefik-deploy
|
|
- directories
|
|
|
|
- name: Create ACME storage file
|
|
file:
|
|
path: "{{ traefik_data_dir }}/acme.json"
|
|
state: touch
|
|
owner: root
|
|
group: root
|
|
mode: '0600'
|
|
tags:
|
|
- traefik-deploy
|
|
- config
|
|
|
|
- name: Download custom root CA certificate
|
|
get_url:
|
|
url: "{{ traefik_custom_ca_url }}"
|
|
dest: "{{ traefik_custom_ca_path }}"
|
|
mode: '0644'
|
|
owner: root
|
|
group: root
|
|
validate_certs: "{{ traefik_custom_ca_verify_ssl }}"
|
|
timeout: 30
|
|
when: traefik_custom_ca_enabled | default(false) and traefik_custom_ca_url | default('') != ''
|
|
notify: restart traefik
|
|
tags:
|
|
- traefik-deploy
|
|
- custom-ca
|
|
|
|
- name: Create Traefik static configuration
|
|
template:
|
|
src: traefik.yml.j2
|
|
dest: "{{ traefik_config_dir }}/traefik.yml"
|
|
mode: '0644'
|
|
notify: restart traefik
|
|
tags:
|
|
- traefik-deploy
|
|
- config
|
|
|
|
- name: Create Traefik Docker Compose file
|
|
template:
|
|
src: docker-compose.yml.j2
|
|
dest: "{{ traefik_install_dir }}/docker-compose.yml"
|
|
mode: '0644'
|
|
notify: restart traefik
|
|
tags:
|
|
- traefik-deploy
|
|
- config
|
|
|
|
- name: Start Traefik services
|
|
community.docker.docker_compose_v2:
|
|
project_src: "{{ traefik_install_dir }}"
|
|
state: present
|
|
tags:
|
|
- traefik-deploy
|
|
- docker-start
|
|
|
|
- name: Wait for Traefik to be ready
|
|
uri:
|
|
url: "https://traefik.{{ traefik_domain | default('localhost') }}/api/rawdata"
|
|
method: GET
|
|
status_code: 200
|
|
ca_path: "{{ traefik_custom_ca_path }}"
|
|
register: traefik_ready
|
|
until: traefik_ready.status == 200
|
|
retries: 30
|
|
delay: 5
|
|
tags:
|
|
- traefik-deploy
|
|
- health-check
|