From 502feff6e013e8c9151fce92a5b25e90df014613 Mon Sep 17 00:00:00 2001 From: Daniel Allaire Date: Wed, 30 Sep 2026 01:46:35 -0400 Subject: [PATCH] journal : reconstruction de Technolibre par les runners, quatre defauts trouves Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f9cb827..bd8a637 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,46 @@ # CHANGELOG — Set-OPS +## 2026-09-30 (45) — Technolibre reconstruit depuis le runner du site, puis par son propre runner + +**La preuve visée** : la limite 2 du jalon de reconstruction autonome — un locataire refait +PAR LES RUNNERS, pas depuis le poste. Le runner du site rase, recrée les VM et amorce le runner +du locataire (sans aucun de ses secrets) ; le poste l'arme (sa voûte et sa clé, le seul geste +humain) ; le runner du locataire déploie et valide sa flotte. + +**Déroulé** : sauvegarde fraîche des 8 machines qui portent un état (vérifiée) ; `raser` (13 VM, +toutes `123…`) et `flotte-creer` depuis le runner du site ; `inseminer` (socle + moteur) ; +armement depuis le poste ; sur le runner de Technolibre : amorçage du socle (AC, DNS), +`deployer-tout`, `make valider` — **0 échec, valider vert, restaurations vérifiées**. Puis le +pare-feu Proxmox VM par VM (procédure éprouvée : 13/13, flux identiques avant et après, Icinga +à 0 critique), et la recette. + +**Quatre défauts trouvés — c'est le rôle de l'épreuve — tous corrigés dans le code :** +1. **L'identité SSH du runner changeait à chaque reconstruction** : il fabriquait sa paire à + sa naissance, la flotte naissait avec la clé DÉCLARÉE — refus sur les 13 machines. Chez + Chezlepro, la clé déclarée était déjà celle d'un runner disparu. Désormais la clé privée vit + dans la voûte du locataire, l'armement la remet, et refuse si sa clé publique n'est pas + déclarée au plan (garde éprouvée en défaut). Pour cette passe, les 12 VM encore vierges ont + été recréées avec la bonne clé. +2. **`make flux` sur le runner d'un locataire amputait les pare-feux** : sans `underlay.yml` ni + plan du site, les paires qui en dépendent ne se résolvaient à rien — ni transfert de zone + depuis le DNS public du site, ni collecte de la fabric, ni insémination. Le générateur + s'abstient désormais (les règles committées font foi). Vu sur le runner avant tout dommage + durable ; les fichiers committés ont été remis pendant le déploiement. +3. **Keycloak : un client absent faisait échouer les mappers de groupes et de rôles** — sous + `set -euo pipefail`, `grep` sans correspondance sortait avant la branche « client absent ». + Jamais vu tant qu'un client `forgejo` subsistait d'une époque où le locataire avait une forge. +4. **(conception, non corrigé)** Un Icinga neuf marque aussitôt `sauvegarde` et `restauration` + critiques (« jamais rapporté ») ; la restauration n'étant vérifiée que le dimanche, elle + resterait rouge jusque-là après chaque reconstruction. Ici : sauvegarde, vérification du + dépôt et contrôle de restauration déclenchés à la main sur la flotte reconstruite. + +**Et une garde qui a fait son travail** : le runner a refusé de déployer un génome en retard +d'un commit sur la forge du site — publié pendant qu'il travaillait. + +**Recette** : Proxmox 0 écart ; frontière mesurée conforme ; depuis l'Internet sur `.60` : 404 +du frontal, SMTP (bannière de son `edge-mta-01`), 465/587/993 en TLS 1.3 ; zone +`technolibre.ca` republiée et reprise par le DNS public du site (nouveau numéro de série). + ## 2026-09-29 (44) — La page du PSPBT devient la page 404 du frontal de Chezlepro Précision de l'exploitant sur (43) : c'est le **frontal** qui doit servir cette page, comme