Set-OPS-Public/roles/hosts_statiques/tasks/main.yml

49 lines
1.8 KiB
YAML
Raw Normal View History

---
# Alias d'exposition (best-effort) : dérivés du plan si celui-ci est disponible.
- name: Vérifier la présence des registres du plan (sur le nœud de contrôle)
ansible.builtin.stat:
path: "{{ item }}"
register: hosts_statiques_plan
delegate_to: localhost # les registres du plan vivent sur le nœud de contrôle
become: false # lire un fichier ne nécessite pas de privilèges
loop:
- "{{ setops_plan_dir }}/applications.yml"
- "{{ setops_plan_dir }}/domaines.yml"
loop_control:
label: "{{ item | basename }}"
when:
- hosts_statiques_actif | bool
- hosts_statiques_publier_expositions | bool
- setops_plan_dir is defined
- name: Charger les registres applications et domaines (si présents)
ansible.builtin.include_vars:
file: "{{ item }}"
loop:
- "{{ setops_plan_dir }}/applications.yml"
- "{{ setops_plan_dir }}/domaines.yml"
loop_control:
label: "{{ item | basename }}"
when:
- hosts_statiques_actif | bool
- hosts_statiques_publier_expositions | bool
- (hosts_statiques_plan.results | default([]) | selectattr('stat.exists', 'defined') | selectattr('stat.exists') | list | length) == 2
- name: Dériver les alias d'exposition (FQDN exposés → edge qui les sert)
ansible.builtin.set_fact:
hosts_statiques_expositions: >-
{{ {'applications': applications | default({})}
| expositions_des_applications({'domaines_publics': domaines_publics | default({})}) }}
when:
- hosts_statiques_actif | bool
- hosts_statiques_publier_expositions | bool
- name: Générer /etc/hosts depuis l'inventaire (plancher de résolution, indépendant du DNS)
ansible.builtin.template:
src: hosts.j2
dest: /etc/hosts
owner: root
group: root
mode: "0644"
when: hosts_statiques_actif | bool