journal : reconstruction de Technolibre par les runners, quatre defauts trouves

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Daniel Allaire 2026-09-30 01:46:35 -04:00
parent bdbf7d8317
commit 502feff6e0

View file

@ -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