Compare commits

...

1 commit

2 changed files with 18 additions and 5 deletions

View file

@ -51,14 +51,22 @@ log_level: "INFO"
# Network name # Network name
traefik_network: "proxy" traefik_network: "proxy"
# Services to expose (defined by application roles via host_vars or group_vars) # Services to expose through DMZ (defined on backend servers via host_vars)
# Each backend server should define this variable with their services # The DMZ proxy aggregates these from all backend_servers and auto-populates backend_host
# traefik_services: # dmz_exposed_services:
# - name: httpbin # - name: httpbin
# domain: httpbin.example.com # domain: httpbin.example.com
# port: 8080 # port: 8080
# protocol: http # http or https # protocol: http # http or https
# entrypoints: [websecure] # optional, defaults based on SSL config
# Services to expose directly on the proxy (for hosts not managed by Ansible)
# Define on the DMZ host itself - requires explicit backend_host
# traefik_services:
# - name: external-api
# domain: api.example.com
# backend_host: 10.0.0.50 # required for direct definitions
# port: 8080
# protocol: http
# DMZ mode: Explicit backend server mapping # DMZ mode: Explicit backend server mapping
# Define which backend servers this DMZ proxy should route to # Define which backend servers this DMZ proxy should route to

View file

@ -9,10 +9,15 @@
- name: Build service registry from backend servers (DMZ mode) - name: Build service registry from backend servers (DMZ mode)
set_fact: set_fact:
proxied_services: "{{ proxied_services | default([]) + hostvars[item].traefik_services | default([]) | map('combine', {'backend_host': hostvars[item].ansible_host | default(item)}) | list }}" proxied_services: "{{ proxied_services | default([]) + hostvars[item].dmz_exposed_services | default([]) | map('combine', {'backend_host': hostvars[item].ansible_host | default(item)}) | list }}"
loop: "{{ _backend_servers | default([]) }}" loop: "{{ _backend_servers | default([]) }}"
when: traefik_mode == 'dmz' when: traefik_mode == 'dmz'
- name: Add directly defined services to registry (DMZ mode)
set_fact:
proxied_services: "{{ proxied_services | default([]) + traefik_services | default([]) }}"
when: traefik_mode == 'dmz'
- name: Debug service registry - name: Debug service registry
debug: debug:
var: proxied_services var: proxied_services