serveurs_* -> serveur_, clients_ -> client_, suffixes pluriels au singulier (serveur_web_dorsal/frontal, client_metrique, client_journal). Renommage par tokens exacts : repertoires de roles, playbooks de groupes, group_vars, variables internes des roles (serveur_nginx_*, conformite ansible-lint), groupes du plan, constantes de code, docs. Faux-amis preserves (serveurs_bd, scripts/serveurs.py, fonctions Python). Groupes d'etat gardes au pluriel (hotes_actifs/planifies, modeles_vm). Valide : ansible-lint 0 echec (0 var-naming), diff vide de la generation, node --check, tous les registres. Ajout de .ansible-lint excluant docs/ (registres de donnees, pas du contenu Ansible). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
61 lines
1.9 KiB
YAML
61 lines
1.9 KiB
YAML
---
|
|
- name: Déterminer les serveurs DNS internes depuis l'inventaire
|
|
ansible.builtin.set_fact:
|
|
client_dns_effective_nameservers: >-
|
|
{{
|
|
client_dns_nameservers
|
|
if (client_dns_nameservers | length > 0)
|
|
else (
|
|
groups.get('serveur_powerdns', [])
|
|
| map('extract', hostvars, 'ansible_host')
|
|
| select('defined')
|
|
| list
|
|
)
|
|
}}
|
|
|
|
- name: Vérifier qu'au moins un serveur DNS interne est connu
|
|
ansible.builtin.assert:
|
|
that:
|
|
- client_dns_effective_nameservers | length > 0
|
|
fail_msg: "Aucun serveur DNS interne disponible pour client_dns."
|
|
|
|
- name: Installer les outils de diagnostic DNS
|
|
ansible.builtin.apt:
|
|
name: dnsutils
|
|
state: present
|
|
update_cache: true
|
|
cache_valid_time: 3600
|
|
|
|
- name: Valider la zone DNS interne sur le serveur primaire
|
|
ansible.builtin.command:
|
|
cmd: "dig @{{ client_dns_effective_nameservers[0] }} {{ client_dns_zone }} SOA +short"
|
|
register: client_dns_soa_check
|
|
changed_when: false
|
|
failed_when: client_dns_soa_check.stdout | trim == ""
|
|
|
|
- name: Refuser la modification DNS sans confirmation explicite
|
|
ansible.builtin.assert:
|
|
that:
|
|
- client_dns_confirm | bool
|
|
fail_msg: "Modification DNS refusee: definir client_dns_confirm=true pour modifier le resolver."
|
|
when: client_dns_apply | bool
|
|
|
|
- name: Configurer le resolver client
|
|
ansible.builtin.template:
|
|
src: resolv.conf.j2
|
|
dest: "{{ client_dns_resolv_conf_path }}"
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
backup: true
|
|
when:
|
|
- client_dns_apply | bool
|
|
- client_dns_confirm | bool
|
|
|
|
- name: Valider la résolution du nom local dans la zone interne
|
|
ansible.builtin.command:
|
|
cmd: "dig @{{ client_dns_effective_nameservers[0] }} {{ inventory_hostname }}.{{ client_dns_zone }} A +short"
|
|
register: client_dns_host_check
|
|
changed_when: false
|
|
failed_when: client_dns_host_check.stdout | trim == ""
|
|
when: ansible_host is defined
|