Set-OPS-Public/roles/hosts_statiques
Daniel Allaire 8eb482e0c6 site-deployer-tout : l orchestration existait, rien ne la lancait
playbooks/site.yml ordonne les couches pour n importe quelle instance. Mais
deployer-tout ne vise que l inventaire d un locataire, et le site n avait que
site-appliquer GROUPE=<un seul>.

Un hebergeur qu on ne peut remonter qu en enchainant onze groupes de memoire
n est pas reconstructible : il est reparable par quelqu un qui se souvient.

Et quatre gardes que --check rendait folles, toutes de la meme famille : une
garde qui compare contre ce qu une tache du meme play vient de produire n a rien
a dire tant que rien n a ete ecrit. Sept machines en echec sur un site sain, en
suivant le conseil du Makefile lui-meme.

Apres correction : 7/7, 0 echec, de 174 a 309 taches par machine.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
2026-09-14 11:02:37 -04:00
..
defaults plancher : nommer ce qui est hors de l'ecosysteme 2026-08-23 10:09:08 -04:00
tasks site-deployer-tout : l orchestration existait, rien ne la lancait 2026-09-14 11:02:37 -04:00
templates site : le plancher survit au redemarrage, et la zone dit les vraies adresses 2026-08-25 20:31:01 -04:00
README.md resolveur : un par tenant, et non plus un par machine 2026-08-24 16:59:34 -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_resolveur, 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/).