Compare commits

...

2 commits

Author SHA1 Message Date
9685e0bdbe reconstruction de confirmation : 0 echec, 34 minutes
Seconde reconstruction complete de Chezlepro dans la journee, pour
EPROUVER les quatre correctifs livres entre les deux. Rien de nouveau
n a ete construit : c est une mesure.

  gabarit sur CephNVMe          clonage 4 min 30 contre ~30 min
  placement declare             {asgard: 14} - les quatorze au bon endroit
  hosts_statiques conditionne   changed au 1er passage, skipping au 2e
  monitoring-plugins au role    ping4 14/14 OK sur une mon-01 nee neuve

Le troisieme est le plus instructif : les DEUX branches sont exercees dans
la meme execution. infra-pki-01 recoit le gabarit maitre de cloud-init au
premier passage, puis la tache est sautee au second, le durcissement
l ayant retire. Aucune preuve statique ne pouvait montrer cela - il fallait
une naissance.

Le facteur mesure est 6,6 et non 45 : un clone isole prend 8 s, mais quatre
clones se disputent le pool et le redimensionnement du disque s ajoute. On
retient la mesure en conditions reelles, celle qu on paie.

Des trois echecs du matin il ne reste rien. Le verrou dpkg ne s est pas
reproduit - c etait une course, et rien ne dit qu elle ne reviendra pas.
Et le cache apt N ETAIT PAS un defaut : les deux seuls fatal de cette
execution sont suivis de ...ignoring, ce sont les sondes de
client_artefacts qui laissent la machine servie par le plancher du SITE.
C est la filiation en train de fonctionner. Le matin, j avais compte ces
deux lignes comme des echecs sans lire la suivante.

Icinga : 89 OK, 9 UNKNOWN sur 98, aucun WARNING, aucun CRITICAL. Les neuf
sont tous des sauvegarde dont le minuteur nocturne n a pas encore visite
une flotte nee il y a vingt minutes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
2026-09-10 14:09:02 -04:00
2cf68c2d30 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
2026-09-10 13:29:25 -04:00
2 changed files with 126 additions and 0 deletions

View file

@ -1,5 +1,98 @@
# CHANGELOG — Set-OPS
## 2026-09-10 (9) — La reconstruction de confirmation : 0 echec, 34 minutes
Seconde reconstruction complete de Chezlepro dans la journee, cette fois pour EPROUVER les
quatre correctifs livres entre les deux. Rien de nouveau n'a ete construit : c'est une
mesure.
rc=0 0 echec 0 injoignable 14 / 14 machines
34 min contre 68 le matin meme
### Les quatre points, et leur verdict
| ce qui etait a eprouver | verdict |
|---|---|
| gabarit sur `CephNVMe` | phase de clonage **4 min 30** contre ~30 min |
| placement declare (`noeud: asgard`) | `{'asgard': 14}` — les quatorze au bon endroit |
| `hosts_statiques` conditionne a cloud-init | `changed` au 1er passage, `skipping` au 2e |
| `monitoring-plugins-basic` au role | `ping4` **14/14 OK** sur une `mon-01` nee neuve |
Le troisieme est le plus instructif : **les deux branches sont exercees dans la meme
execution.** `infra-pki-01` recoit le gabarit maitre de cloud-init au premier passage
(cloud-init est encore la), puis la tache est SAUTEE au second (le durcissement l'a
retire). Aucune preuve statique ne pouvait montrer cela — il fallait une naissance.
### Le facteur 6,6, et pourquoi ce n'est pas 45
Un clone isole sur Ceph prend 8 s contre 352 a 480 s sur TrueNAS : facteur 45. En
conditions reelles il tombe a **6,6** — quatre clones se disputent le meme pool, et le
redimensionnement du disque s'ajoute a la copie. On retient la mesure en conditions
reelles : celle qui compte est celle qu'on paie.
### Ce que les echecs du matin sont devenus
- **`/etc/cloud`** — corrige, prouve dans ses deux branches.
- **Verrou `dpkg`** — ne s'est pas reproduit. C'etait une course, pas un defaut de
structure ; rien ne dit qu'elle ne reviendra pas, et le dire vaut mieux que la declarer
reglee.
- **Cache apt** — **n'etait pas un defaut**. Les deux seuls `fatal:` de cette execution
sont suivis de `...ignoring` : ce sont les sondes de `client_artefacts`, qui cherchent le
cache du tenant, ne le trouvent pas, et laissent la machine servie par le plancher du
SITE. C'est la filiation en train de fonctionner. Le matin, j'avais compte ces deux
lignes comme des echecs sans lire la suivante.
- **`auditd` sans regles dans le gabarit** — toujours la, mais invisible : aucune machine
n'ayant decroche avant le socle, le CRITICAL transitoire a ete repare partout avant
d'etre mesure. *Un defaut qui ne se voit que lorsqu'autre chose casse reste un defaut.*
### Etat mesure
Icinga 89 OK | 9 UNKNOWN sur 98 — aucun WARNING, aucun CRITICAL
les 9 tous des `sauvegarde` : le minuteur nocturne n'a pas encore visite
une flotte nee il y a vingt minutes
La condition posee avant de retirer les disques `unused0`/`unused1` du gabarit sur TrueNAS
est **levee** : une flotte complete est nee du nouveau gabarit, sans un echec.
## 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)