Set-OPS-Public/roles/hosts_statiques
Daniel Allaire f8a84b78d5 reconstruction from-zero : sept defauts, tous invisibles sur une flotte debout
Chezlepro reconstruit depuis zero en 10.17.x.x. Sept defauts sont tombes, et
AUCUN n'etait detectable autrement — c'est tout l'argument de la reconstruction
comme preuve.

  1. aucune route vers le tenant sur le poste (posee a la main, jamais persistee)
  2. backup-01 exigeait l'AC d'Icinga — dependance non declaree
  3. ma correction inversait les couches : REFUSEE PAR P08 avant d'entrer
  4. base Forgejo a moitie initialisee (sequelle de l'arret du n°2)
  5. /etc/hosts : nom court avant le FQDN -> hostname -f faux sur les 14 machines
  6. API Icinga jamais activee (garde `creates:` d'api setup)
  7. restic refuse tout le lot si un chemin declare manque

LE CINQUIEME DEPASSAIT ICINGA. hostname -f rend le PREMIER nom : toute la flotte
se croyait appelee « mon-01 ». Visible sur le certificat d'Icinga, mais le meme
piege attendait Postfix (myhostname), les journaux, les certificats. FQDN d'abord.

CE QU'ON NE CORRIGE PAS : icinga2 api setup REECRIT NodeName d'apres le nom court
et nomme ses certificats d'apres lui. Aligne avant, il est ecrase ; aligne apres,
les certificats portent le mauvais nom. On adopte sa convention : le depot appelle
l'API par le nom court, celui que le certificat porte.

serveur_icinga_node_name derive desormais de l'INVENTAIRE, pas d'ansible_fqdn —
un fait qui depend du resolveur et rendait « mon-01 » alors que le FQDN etait bon.

Le commentaire ecrit pour avertir qu'une sequence accolade-diese casse les
gabarits Jinja contenait cette sequence, et cassait le gabarit. Neuf hotes en
echec pour un avertissement mal redige.

Sept devis CONFORME, prouver 36/36, make test 0. Neuf sauvegardes reussies.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-13 03:36:56 -04:00
..
defaults hosts_statiques : alias d'exposition dans le plancher /etc/hosts (résolution sûre) 2026-07-03 14:14:34 -04:00
tasks hosts_statiques : alias d'exposition dans le plancher /etc/hosts (résolution sûre) 2026-07-03 14:14:34 -04:00
templates reconstruction from-zero : sept defauts, tous invisibles sur une flotte debout 2026-08-13 03:36:56 -04:00
README.md docs : un README par rôle (12 manquants) + carte remise à l'état du code 2026-07-29 11:32:06 -04:00

hosts_statiques

Plancher de résolution : génère /etc/hosts depuis l'inventaire, pour que tout l'écosystème se résolve par nom même DNS éteint.

Rôle

  • Génère /etc/hosts (template hosts.j2) à partir des hôtes actifs de l'inventaire : IP, nom court, FQDN interne.
  • Alias d'exposition (optionnel, actif par défaut) : pose <IP de l'edge> <FQDN exposé> pour chaque application qui déclare un expose dans le plan — la résolution des services publiés ne dépend donc pas non plus du DNS.

Pourquoi

C'est ce qui rend l'ordre de reconstruction possible : appliqué dans la couche socle (via playbooks/groupes/serveur_debian.yml), il donne la résolution par nom avant que serveur_powerdns n'existe. Sans lui, tout service référençant un FQDN interne (resoudre_base, resoudre_annuaire, certificats step_ca…) échouerait au premier déploiement d'une instance neuve.

Les trois couches de résolution : ce plancher → PowerDNS autoritatif → Unbound local (client_unbound, opt-in). Cf. docs/dns-interne.md.

Variables

Variable Défaut Rôle
hosts_statiques_actif true Génère (ou non) /etc/hosts
hosts_statiques_domaine {{ domaine_interne }} Suffixe des FQDN
hosts_statiques_publier_expositions true Ajoute les alias expose → edge
hosts_statiques_expositions [] Calculé par le rôle (filtre expositions_des_applications)

Notes / limites

  • Les alias d'exposition sont best-effort : le rôle lit applications.yml et domaines.yml sur le nœud de contrôle (delegate_to: localhost, stat d'abord). Plan absent (ex. préparation du golden template) → alias simplement omis, pas d'échec.
  • Le fichier est entièrement géré par Ansible : toute ligne ajoutée à la main sur un nœud est écrasée au prochain passage. C'est voulu (source unique = le plan).
  • Postfix tourne en chroot : serveur_postfix recopie ce /etc/hosts dans /var/spool/postfix/etc/ pour que le MTA bénéficie du même plancher.

Prérequis

  • domaine_interne défini ; setops_plan_dir pour les alias d'exposition.
  • Filtre expositions_des_applications (filter_plugins/).