netbox-ansible/roles/traefik/tasks/main.yml
2025-09-27 13:36:00 -04:00

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