deployer : socle en premier dans l'ordre des playbooks

Les groupes etaient deployes en ordre alphabetique -> client_pki (c)
passait AVANT serveur_debian (s), donc avant que hosts_statiques ne pose
/etc/hosts. Sur un noeud frais, client_pki ne pouvait pas resoudre l'AC
interne (« no such host ») et echouait au bootstrap.

L'ordre force desormais le socle en tete (serveur_debian, serveur_durci)
puis le reste : socle -> client_* -> services. Trouve en deployant un
noeud identite frais (client_pki avant socle).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Daniel Allaire 2026-07-02 09:32:20 -04:00
parent 6117e2820c
commit 68af9172c3

View file

@ -206,6 +206,12 @@ def afficher_playbooks_hote(data: dict, host: str, playbook_dir: Path) -> None:
if not groups:
raise ValueError(f"Hote absent de l'inventaire: {host}")
# Le SOCLE passe toujours en premier : il pose /etc/hosts (resolution interne),
# le durcissement, etc. Les integrations client_* et les services en dependent
# (ex. client_pki doit resoudre l'AC via /etc/hosts avant de bootstrapper).
socle = ["serveur_debian", "serveur_durci"]
groups = sorted(groups, key=lambda g: (socle.index(g) if g in socle else len(socle), g))
missing_playbooks: list[str] = []
playbooks: list[Path] = []