audit : figer l'etat de reference avant la reconstruction from-zero

Les 14 VM sont un POC, pas de la prod (recadrage de l'exploitant). Et
reconstruire Chezlepro est un MEILLEUR test que construire Technolibre : on a
un etat de reference — les 5 devis y sont CONFORME. Toute divergence apres
rejeu sera un defaut reel, mesurable. Sur Technolibre, qui n'a jamais tourne,
un echec serait ambigu.

Fige : les 5 verdicts, les 14 hotes (adresse + services), et ce qui sera perdu
et devra etre refait a la main (cle racine de l'AC, donc la racine installee
dans le navigateur ; mot de passe sysadmin). Pour que « identique » soit
prouvable plutot que ressenti.

Verifie que rien de necessaire au rejeu ne vit dans les 14 VM : les voutes et
le mot de passe de voute sont hors cluster, et origin est sur eregion
(192.168.12.201), machine distincte du tenant.

Constat : le moteur n'a AUCUN chemin de destruction. make reconstruire cree et
deploie, il ne rase rien.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Daniel Allaire 2026-08-08 14:14:44 -04:00
parent 107518d269
commit 7dcbc6a0a4
2 changed files with 71 additions and 0 deletions

View file

@ -1,5 +1,32 @@
# CHANGELOG — Set-OPS # CHANGELOG — Set-OPS
## 2026-08-08 — État de référence figé avant la reconstruction from-zero
L'exploitant recadre : les 14 VM sont un **POC**, pas de la production. Ma prudence venait
d'une hypothèse que je portais, pas de lui. Les constats sur les sauvegardes restent du
travail à faire **avant** que ça devienne de la production — pas avant le test.
**Et reconstruire Chezlepro est un meilleur test que construire Technolibre.** On dispose
d'un état de référence : les cinq devis y sont `CONFORME` à l'instant. Toute divergence
après rejeu sera un défaut réel, mesurable contre une base connue. Sur Technolibre, qui n'a
jamais tourné, un échec serait ambigu — plan faux ou moteur faux ?
`docs/audit/reference-avant-reconstruction-2026-08-08.md` fige : les cinq verdicts, les 14
hôtes avec leur adresse et leur compte de services, et surtout **ce qui sera perdu et devra
être refait à la main** (clé racine de l'AC — donc la racine installée dans le navigateur —
et le mot de passe du compte `sysadmin`). Ce document existe pour que « identique » soit
**prouvable plutôt que ressenti**.
Ce qui survit et rend le rejeu possible : les deux voûtes et `~/.config/setops-vault-pass`
vivent hors dépôt et hors cluster ; le code est sur `eregion.chezlepro.ca`
(192.168.12.201), machine **distincte** du tenant — vérifié, parce qu'un dépôt dont le
`origin` vivrait dans l'écosystème à détruire serait une dépendance circulaire fatale.
**Constat au passage : le moteur n'a aucun chemin de destruction.** `make reconstruire`
crée les VM manquantes et déploie ; il ne rase rien. C'est cohérent avec la doctrine (rien
de destructif sans garde explicite), mais ça veut dire qu'un test « depuis zéro » suppose
une suppression faite hors du moteur.
## 2026-08-08 — « Set-OPS trichait ? » — non, il se sous-estimait ## 2026-08-08 — « Set-OPS trichait ? » — non, il se sous-estimait
Question de l'exploitant après avoir vu P31 manquer deux fois sa cible. Elle méritait un Question de l'exploitant après avoir vu P31 manquer deux fois sa cible. Elle méritait un

View file

@ -0,0 +1,44 @@
# État de référence — avant reconstruction from-zero
> Figé le 2026-08-08, écosystème **chezlepro** (index 17, 14 VM), avant destruction et
> rejeu complet du plan. **Ce document existe pour que « identique » soit prouvable
> plutôt que ressenti.** Toute divergence après reconstruction se lit contre lui.
## Les cinq devis, avant
```
identite CONFORME : le réel correspond au déclaré (1 compte(s) dans l'annuaire).
certificats CONFORME : aucun certificat servi n'est en fin de vie.
expositions CONFORME : toute exposition déclarée répond, des deux points de vue.
postgresql CONFORME : chiffrement imposé, et aucun réseau hors du supernet dérivé.
courriel CONFORME : la chaîne tient, de la résolution LDAP à la boîte.
```
## Ce que la flotte porte
```
backup-01 10.27.18.21 1 service(s) metier
collab-01 10.27.21.21 3 service(s) metier
data-sql-01 10.27.18.11 2 service(s) metier
edge-mta-01 10.27.16.21 2 service(s) metier
forge-01 10.27.21.11 1 service(s) metier
idm-01 10.27.17.11 3 service(s) metier
infra-dns-01 10.27.19.11 1 service(s) metier
infra-edge-01 10.27.16.11 2 service(s) metier
infra-mail-01 10.27.19.31 2 service(s) metier
infra-pki-01 10.27.19.21 2 service(s) metier
mon-01 10.27.20.21 6 service(s) metier
obs-01 10.27.20.11 2 service(s) metier
web-dorsal-01 10.27.21.41 2 service(s) metier
web-frontal-01 10.27.21.31 2 service(s) metier
```
## Ce qui sera perdu et devra être refait à la main
| Objet | Conséquence | Geste de reprise |
|---|---|---|
| **Clé racine de l'AC** (`/etc/step-ca/secrets/root_ca_key`) | la racine installée dans le navigateur devient inutile ; tous les certificats changent | `make ca-racine` + réinstaller, en comparant l'empreinte (§6.3) |
| **Mot de passe du compte `sysadmin`** | l'annuaire est recréé vide, puis amorcé | relever le jeton d'amorçage en voûte (§6.1) et le changer |
| **Contenu applicatif** (dépôts Forgejo, fichiers Nextcloud, courriels, tableaux Grafana) | non sauvegardé, non reconstructible par le code | aucun — assumé : c'est un POC |
> Ce qui **survit** : les deux voûtes et `~/.config/setops-vault-pass` vivent hors dépôt
> et hors cluster ; le code est sur `eregion.chezlepro.ca` (192.168.12.201), machine
> distincte du tenant. Rien de ce qui est nécessaire au rejeu n'est dans les 14 VM.