This repository has been archived on 2026-06-26. You can view files and clone it, but cannot push or open issues or pull requests.
Set-OPS/roles/clients_dns/tasks/main.yml

61 lines
1.9 KiB
YAML

---
- name: Déterminer les serveurs DNS internes depuis l'inventaire
ansible.builtin.set_fact:
clients_dns_effective_nameservers: >-
{{
clients_dns_nameservers
if (clients_dns_nameservers | length > 0)
else (
groups.get('serveurs_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:
- clients_dns_effective_nameservers | length > 0
fail_msg: "Aucun serveur DNS interne disponible pour clients_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 @{{ clients_dns_effective_nameservers[0] }} {{ clients_dns_zone }} SOA +short"
register: clients_dns_soa_check
changed_when: false
failed_when: clients_dns_soa_check.stdout | trim == ""
- name: Refuser la modification DNS sans confirmation explicite
ansible.builtin.assert:
that:
- clients_dns_confirm | bool
fail_msg: "Modification DNS refusee: definir clients_dns_confirm=true pour modifier le resolver."
when: clients_dns_apply | bool
- name: Configurer le resolver client
ansible.builtin.template:
src: resolv.conf.j2
dest: "{{ clients_dns_resolv_conf_path }}"
owner: root
group: root
mode: "0644"
backup: true
when:
- clients_dns_apply | bool
- clients_dns_confirm | bool
- name: Valider la résolution du nom local dans la zone interne
ansible.builtin.command:
cmd: "dig @{{ clients_dns_effective_nameservers[0] }} {{ inventory_hostname }}.{{ clients_dns_zone }} A +short"
register: clients_dns_host_check
changed_when: false
failed_when: clients_dns_host_check.stdout | trim == ""
when: ansible_host is defined