ssh_baseline gere les cles d'administration declarees au plan, avec un `etat` par entree : revoquer devient un changement de plan, pas une visite sur chaque machine. Pas d'exclusive -- il effacerait la cle de cloud-init et fermerait la flotte a tout le monde. cloud-init reecrivait /etc/hosts a chaque demarrage et effacait le plancher de resolution. Constate sur infra-dns-01 apres un redemarrage : six entrees perdues, revelees deux jours plus tard par un apt update qui ne resolvait plus. requirements.yml ne declarait pas ansible.posix ni community.docker, pourtant utilisees. Ca marchait chez le mainteneur, pas sur un runner. Et le cache des collections suivait l'existence du fichier au lieu de son contenu. Enfin : deux `when` sur une meme tache, c'est un seul -- le dernier. Le check-mode avait disparu en silence. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| defaults | ||
| tasks | ||
| templates | ||
| README.md | ||
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(templatehosts.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 unexposedans 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.ymletdomaines.ymlsur le nœud de contrôle (delegate_to: localhost,statd'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_postfixrecopie ce/etc/hostsdans/var/spool/postfix/etc/pour que le MTA bénéficie du même plancher.
Prérequis
domaine_internedéfini ;setops_plan_dirpour les alias d'exposition.- Filtre
expositions_des_applications(filter_plugins/).