hosts_statiques : une garde qui survit a ce qu elle gardait

Le role pose /etc/cloud/templates/hosts.debian.tmpl - le gabarit maitre
dont cloud-init regenere /etc/hosts au demarrage. Or D-85 fait retirer
cloud-init par serveur_durci, et le repertoire part avec lui.

L echec n avait aucun sens : ce gabarit ne sert qu a survivre a une
reecriture qui n a plus lieu. Plus de cloud-init, plus de reecriture, le
plancher tient tout seul - c est le resultat recherche par D-85.

CE QUE CA A COUTE. _amorcer-socle monte infra-pki-01 et infra-dns-01 en
entier d abord, durcissement compris. La tache echouait au second passage,
l hote sortait du play, et TOUT ce qui suivait n etait jamais pose - dont
icinga-ca.crt. Leur porteur de sante tournait ensuite normalement et chaque
rapport echouait sur curl: (77), en silence. Un echec bruyant au bon
endroit avait produit une panne muette ailleurs.

Et sauter la tache seule aurait deplace l echec d un cran : la garde qui
suit compare le nombre d entrees du plancher a celui du gabarit, donc 21
contre 0. Elle accuserait une divergence la ou il ne reste qu un fichier.
Une garde qui survit a ce qu elle gardait ne mesure plus rien : elle
invente. Les trois taches suivent desormais la meme condition.

Verifie sur les deux machines memes qui echouaient : failed=0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
This commit is contained in:
Daniel Allaire 2026-09-10 13:29:25 -04:00
parent 4ef3a1d553
commit 2cf68c2d30
2 changed files with 72 additions and 0 deletions

View file

@ -1,5 +1,44 @@
# CHANGELOG — Set-OPS
## 2026-09-10 (8) — Une garde qui survit a ce qu'elle gardait
Le defaut le plus couteux de la reconstruction, corrige. Il n'arretait rien de visible :
il faisait **taire** la supervision de deux machines.
`hosts_statiques` pose `/etc/cloud/templates/hosts.debian.tmpl` — le gabarit maitre dont
cloud-init regenere `/etc/hosts` a chaque demarrage. Or **D-85 fait retirer cloud-init**
par `serveur_durci`. Le repertoire part avec lui :
Destination directory /etc/cloud/templates does not exist
L'echec n'a aucun sens : ce gabarit ne sert qu'a survivre a une reecriture qui n'a plus
lieu. Plus de cloud-init, plus de reecriture — le plancher tient tout seul, **ce qui est
le resultat recherche par D-85**.
### Ce que ca a coute, et pourquoi c'etait invisible
`_amorcer-socle` monte `infra-pki-01` et `infra-dns-01` EN ENTIER d'abord, durcissement
compris. Cloud-init y est donc deja parti quand la flotte rejoue `hosts_statiques`. La
tache echouait, **l'hote sortait du play — et tout ce qui suivait n'etait jamais pose**,
dont `icinga-ca.crt`. Leur porteur de sante s'installait ensuite normalement, tournait, et
chaque rapport echouait sur `curl: (77) error setting certificate file`.
Deux machines ont supervise dans le vide sans que rien ne le dise. *Un echec bruyant au
bon endroit avait produit une panne muette ailleurs.*
### Et le correctif evident aurait deplace l'echec d'un cran
Sauter la tache ne suffisait pas : la garde qui SUIT compare le nombre d'entrees du
plancher a celui du gabarit maitre. Sans gabarit, elle compare 21 a 0 et echoue — elle
accuserait une divergence la ou il ne reste qu'un seul fichier.
**Une garde qui survit a ce qu'elle gardait ne mesure plus rien : elle invente.** Les trois
taches — pose, releve, assertion — suivent desormais la meme condition : le repertoire des
gabarits maitres existe-t-il encore ?
Verifie sur les deux machines memes qui echouaient : `failed=0`, cloud-init absent,
plancher a 21 entrees.
## 2026-09-10 (7) — D-86 mis a l'epreuve : Chezlepro rasee et refaite depuis zero
Quatorze machines detruites, quatorze refaites. **1 h 08**, 0 injoignable. La reconstruction

View file

@ -139,6 +139,30 @@
#
# Le gabarit d'origine le documente lui-meme : « make changes to the master file in
# /etc/cloud/templates/hosts.debian.tmpl ».
# ... MAIS SEULEMENT TANT QUE CLOUD-INIT EST LA (2026-09-10).
#
# D-85 fait RETIRER cloud-init par `serveur_durci`. Le repertoire des gabarits maitres
# part avec lui, et cette tache echoue alors sur :
#
# Destination directory /etc/cloud/templates does not exist
#
# Or l'echec n'a aucun sens : ce gabarit ne sert qu'a une chose, survivre a la reecriture
# de `/etc/hosts` par cloud-init au demarrage. Plus de cloud-init, plus de reecriture —
# le plancher tient tout seul, ce qui EST le resultat recherche par D-85.
#
# CE QUE CA A COUTE (reconstruction du 2026-09-10). `_amorcer-socle` monte `infra-pki-01`
# et `infra-dns-01` EN ENTIER d'abord, durcissement compris : cloud-init y est donc deja
# parti quand la flotte rejoue `hosts_statiques`. La tache echouait, l'hote sortait du
# play — et TOUT ce qui suivait dans ce play n'etait jamais pose, dont `icinga-ca.crt`.
# Leur porteur de sante tournait ensuite normalement et chaque rapport echouait sur
# `curl: (77)`, en silence. Deux machines ont supervise dans le vide sans que rien ne le
# dise : un echec bruyant au bon endroit avait produit une panne muette ailleurs.
- name: Le gabarit maître de cloud-init existe-t-il encore ?
ansible.builtin.stat:
path: /etc/cloud/templates
register: hosts_statiques_gabarits_cloud_init
when: hosts_statiques_actif | bool
- name: Poser le plancher dans le gabarit maître de cloud-init (il survit au démarrage)
ansible.builtin.template:
src: hosts.debian.tmpl.j2
@ -149,6 +173,7 @@
when:
- hosts_statiques_actif | bool
- ansible_facts.os_family | default('') == 'Debian'
- hosts_statiques_gabarits_cloud_init.stat.isdir | default(false)
# LA GARDE MESURE LE FAIT QUI COMPTE (2026-08-25).
#
@ -174,6 +199,8 @@
when:
- hosts_statiques_actif | bool
- ansible_facts.os_family | default('') == 'Debian'
# Rien a relever quand le gabarit maitre n'existe plus (cloud-init retire, D-85).
- hosts_statiques_gabarits_cloud_init.stat.isdir | default(false)
- name: Refuser que le plancher et son gabarit maître divergent
ansible.builtin.assert:
@ -196,3 +223,9 @@
when:
- hosts_statiques_actif | bool
- ansible_facts.os_family | default('') == 'Debian'
# LA GARDE SUIT SON OBJET. Elle protege le plancher d'une REECRITURE par cloud-init ;
# sans cloud-init, il n'y a plus de reecriture et plus de gabarit a comparer. La
# laisser tourner ferait echouer sur « 34 contre 0 » — c'est-a-dire accuser une
# divergence la ou il n'y a plus qu'un seul fichier. Une garde qui survit a ce qu'elle
# gardait ne mesure plus rien : elle invente.
- hosts_statiques_gabarits_cloud_init.stat.isdir | default(false)