57 lines
1.4 KiB
YAML
57 lines
1.4 KiB
YAML
#SPDX-License-Identifier: MIT-0
|
|
---
|
|
# tasks file for reverseproxy
|
|
|
|
- name: Gather service information from all hosts
|
|
setup:
|
|
delegate_to: "{{ item }}"
|
|
delegate_facts: true
|
|
loop: "{{ groups['all_servers'] }}"
|
|
|
|
- name: Build service registry from all hosts
|
|
set_fact:
|
|
all_services: "{{ all_services | default([]) + hostvars[item].services | default([]) | map('combine', {'backend_host': item}) | list }}"
|
|
loop: "{{ groups['all_servers'] }}"
|
|
|
|
- name: Debug service registry
|
|
debug:
|
|
var: all_services
|
|
|
|
- name: Create docker compose directory
|
|
file:
|
|
path: "{{ docker_compose_dir }}"
|
|
state: directory
|
|
mode: '0755'
|
|
|
|
- name: Create docker volume directories
|
|
file:
|
|
path: "{{ docker_volume_dir }}/traefik/{{ item }}"
|
|
state: directory
|
|
mode: '0755'
|
|
loop:
|
|
- letsencrypt
|
|
|
|
- name: Generate traefik static configuration
|
|
template:
|
|
src: traefik.yml.j2
|
|
dest: "{{ docker_compose_dir }}/traefik.yml"
|
|
mode: '0644'
|
|
notify: restart traefik
|
|
|
|
- name: Generate traefik services configuration for discovered services
|
|
template:
|
|
src: services.yml.j2
|
|
dest: "{{ docker_compose_dir }}/services.yml"
|
|
mode: '0644'
|
|
notify: restart traefik
|
|
|
|
- name: Create docker-compose file for traefik
|
|
template:
|
|
src: docker-compose.yml.j2
|
|
dest: "{{ docker_compose_dir }}/docker-compose.yml"
|
|
mode: '0644'
|
|
|
|
- name: Start traefik container
|
|
docker_compose:
|
|
project_src: "{{ docker_compose_dir }}"
|
|
state: present
|