From 52b9d31a5d5f9fadff10b02613f7b637562d728d Mon Sep 17 00:00:00 2001 From: Daniel Allaire Date: Mon, 14 Sep 2026 10:23:42 -0400 Subject: [PATCH] sonde depot : prouvee, et le chemin qu il a fallu ouvrir pour y arriver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Depot sain code 0 avec 4 depots et 374G libres. Chemin non inscriptible code 2. Chemin inexistant code 2. Zero temoin residuel dans le vrai depot. Pour y arriver il a fallu que le runner du site puisse entrer chez lui — ce qu il ne savait pas faire. Trois causes empilees, dont une que j ai ecrite en corrigeant les deux autres. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q --- CHANGELOG.md | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c115df4..aefffde 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,65 @@ # CHANGELOG — Set-OPS +## 2026-09-14 (5) — Le site ne savait pas se configurer lui-meme + +Parti pour eprouver une sonde, arrive sur un defaut structurel : **le runner du SITE ne +pouvait entrer sur aucune machine du site**. Il sait inseminer un locataire — c'est prouve +— et il ne savait pas configurer l'hebergeur qui le porte. Tout le site avait donc ete +deploye depuis le poste de l'exploitant, et rien ne disait que c'etait la seule voie. + +### Trois causes empilees, et un message qui accusait la mauvaise + +1. **Le site n'avait aucun moyen d'autoriser une cle d'administration.** Un locataire + declare `ssh_baseline_cles_admin` ; cote site, rien ne transmettait cette liste. Ses + machines n'autorisaient que la cle posee par cloud-init. + +2. **Le rebond etait pose sans condition**, y compris pour un controleur vivant DANS le + site. Il devait alors s'authentifier aupres de la frontiere, ou sa cle n'est pas + autorisee. OpenSSH rend alors : + + Host key verification failed. + Connection closed by UNKNOWN port 65535 + + — un message qui accuse les cles d'HOTE alors que l'echec est une AUTHENTIFICATION, et + sur le SAUTEUR, pas sur la cible. + +3. **`cle_ssh` designe le chemin de la cle SUR LE POSTE.** Impose au runner, il nomme un + fichier qui n'existe pas chez lui. + +Le rebond et la cle decrivent tous deux **comment on arrive**, pas ce vers quoi on va. Ce +qui depend de l'endroit d'ou l'on part n'a pas sa place dans la description d'un site. + +### La faute que j'ai ecrite en corrigeant, et qui merite d'etre gardee + +La fonction qui repond « suis-je une machine du site » appelait `underlay_mod` — un nom +qui n'existe pas dans ce fichier, le module y etant importe `as U`. Python levait un +`AttributeError` a chaque appel, et le `except Exception: return False` le rendait **muet**. + +La fonction repondait donc toujours *non*, le rebond etait toujours pose, et rien ne le +disait. **Une garde qui se tait ne garde rien** — le defaut exact que ce depot traque +ailleurs, ecrit ici. Le `except` ne couvre plus qu'un plan illisible ; une faute de +programmation remonte. + +Le critere lui-meme a demande trois formulations : « dans un RESEAU du site » (faux, le +poste porte `10.37.0.17`), « dans `underlay.hotes` » (faux, `hotes` ne contient que les +equipements), puis **par le NOM** — le runner s'appelle `site-ops-01`, une cle du plan. + +### L'amorcage est circulaire, et il se rompt par le poste + +Lui seul entrait : il pose la cle, le runner devient autonome. Verifie apres +`make site-appliquer GROUPE=serveur_debian` — **7/7, 0 echec** — puis **5/5** machines +atteintes par le runner, qui a ensuite configure `site-backup-01` lui-meme. + +### Et la sonde, enfin prouvee + +| | verdict | code | +|---|---|---| +| depot sain | `accepte l'ecriture — 4 depot(s), 374G libres` | **0** | +| chemin non inscriptible | `refuse l'ecriture pour restic` | **2** | +| chemin inexistant | `n'existe pas` | **2** | + +Le vrai depot n'a pas bouge : zero fichier temoin residuel. + ## 2026-09-14 (4) — Les greffons standard manquaient a la flotte `docs/supervision-conception.md` dit qu'un greffon Nagios **est** une sonde valide, « sans