Set-OPS-Public/roles/client_unbound/defaults/main.yml
Daniel Allaire 0de5294a20 client_unbound : survivre a la perte de connexion sans la masquer
Le deploiement s'interrompait autour du redemarrage d'Unbound (« banner
exchange »), et Ansible abandonnait alors TOUTES les couches suivantes de
l'hote — alors qu'il repondait de nouveau une minute plus tard.

Ma premiere explication etait fausse et je l'ai verifiee avant de coder :
sshd -T dit usedns no, il n'y a pas de resolution inverse. Et la cause reste
INCONNUE — j'avais ecrase le journal du deploiement rate en relancant. Faute
de methode, pas de raisonnement.

Ce que le depot sait de ce symptome est deja dans le Makefile : a travers la
frontiere le TCP s'etablit par proxy SYN, et l'echec se lit « banner exchange »
meme quand l'hote n'est pas la. Le message accuse SSH pour un probleme
d'accessibilite.

Corrige sans pretendre connaitre la cause : ignore_unreachable sur le handler,
puis wait_for_connection qui EXIGE le retour (180 s). Si l'hote ne revient
pas, la tache suivante echoue franchement — on ne masque rien.

Regle pour moi : ne plus ecraser le journal d'un echec avant de l'avoir lu.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-09 11:55:41 -04:00

28 lines
1.5 KiB
YAML

---
# Résolveur local Unbound par nœud : cache + récursion (ou forward), avec une
# stub-zone vers l'autoritatif interne (PowerDNS). Rend la résolution dynamique
# (au lieu du plancher /etc/hosts statique) sans casser Internet. La bascule de
# /etc/resolv.conf est PROTÉGÉE (apply + confirm) — bascule du résolveur validée avant application.
client_unbound_paquets:
- unbound
- bind9-dnsutils # dig, pour valider avant de basculer le resolver
client_unbound_service: "unbound"
client_unbound_ecoute: "127.0.0.1"
# Zone interne autoritative (PowerDNS) — résolue via une stub-zone.
client_unbound_zone_interne: "{{ domaine_interne }}"
# IP du serveur autoritatif interne. Dérivée du groupe serveur_powerdns.
client_unbound_dns_autoritatif: "{{ hostvars[groups['serveur_powerdns'][0]].ansible_host | default('') if groups.get('serveur_powerdns') else '' }}"
# Transitaires pour '.' (Internet). Vide => Unbound recurse lui-même (racine + DNSSEC).
# À renseigner si la récursion sortante est bloquée (forward vers l'upstream réseau).
client_unbound_transitaires: []
# Bascule de /etc/resolv.conf vers 127.0.0.1 : les DEUX requis (garde-fou anti-coupure).
client_unbound_apply: false
client_unbound_confirm: false
client_unbound_resolv_conf: "/etc/resolv.conf"
# Delai maximal pour que l'hote reponde apres le redemarrage d'Unbound. Depasser reste
# un ECHEC : on attend une machine qui revient, pas une panne qu'on tait.
client_unbound_attente_reconnexion: 180