Some checks failed
verifier / verifier (push) Has been cancelled
La revision a commence par un balayage par motifs — chemins morts, cibles make absentes, comptes derives. Il a trouve une trentaine d ecarts et rate presque tout le reste : un motif ne voit que ce qui s exprime en motif. make hote-planifier en est l exemple. La cible EXISTE, donc le controle passait au vert. C est une cible depreciee qui refuse et sort en 2, recommandee par AGENTS.md, et qui contredit la REGLE D OR du meme fichier trois ecrans plus haut. Il fallait lire pour la voir. 74 documents lus un par un. 66 corriges, 8 exacts. CE QUI ETAIT FRANCHEMENT FAUX AGENTS.md, la source d autorite, annoncait la flotte pas encore executee contre des VM reelles. Elle a ete rasee et remontee depuis zero trois fois. ecosysteme-chezlepro.md, le document montre a un client, portait la meme phrase : il se sous-vendait gravement. courriel-conception.md s ouvrait sur aucun role n est encore ecrit, au-dessus de son propre paragraphe 1 qui les nomme. autorisation.md se terminait sur rien n est construit alors qu il rapporte des mesures datees du role en fonctionnement. hebergeur-exploitation.md disait rien n est fait d un depot qui existe. filiation-emancipation.md se contredisait a deux ecrans de distance. DES MODELES DECRITS D APRES UN MONDE ANTERIEUR Le resolveur : cinq documents decrivaient un Unbound par VM en opt-in, trois le donnaient en exemple d integration FACULTATIVE — il est universel depuis le 2026-08-24. L adressage de nomenclature-vm.md : reseau unique, VLAN 11-15, VMID a cinq chiffres. Le nommage SDN de sdn-evpn.md contre le code : c est le wiki qui avait raison. CE QUI CASSE AU PREMIER ESSAI Le nom du gabarit dore etait faux a quatre endroits, dont la procedure qui le FABRIQUE et le critere R2 de l epreuve d operateur independant. preparer-un-site-hebergeur.md avertissait qu une VM faite a la main serait detruite : raser derive du plan, il ne la detruira jamais — le risque est l inverse. Un mot de passe d essai en clair dans un depot public. DEUX PREUVES ETENDUES, ET UNE QUI SE TROMPAIT ELLE-MEME P57 couvre les groupes : elle a signale aussitot 29 groupes annonces au-dessus d un tableau qui en cite 40. P29 confronte le tableau de authentification.md aux declarations reelles : 12 annonces, 21 reels. Et P57 imposait un chiffre faux — 56 preuves alors que le depot en porte 57, la conditionnelle vivant hors de tout comptage. Un garde-fou qui fait respecter une erreur ajoute l assurance a l erreur. CE QUI RESTE, ET QU AUCUNE PREUVE NE TIENT Deux comptes trouves a la main. Et une lacune reelle : rien ne garde les meta/acces.yml — ni qu un service web-sso en porte un, ni que le groupe qu il nomme existe. P29 tient les positions d authentification, personne ne tient les habilitations. make prouver : CONFORME, 56 OK, 0 echec, 1 saute. 0 lien mort. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
144 lines
7 KiB
Markdown
144 lines
7 KiB
Markdown
# Reprendre l'écosystème — tu viens d'hériter de tout ça
|
|
|
|
> **Pour qui :** l'exploitant qui reprend un écosystème Set-OPS déjà déployé — livraison,
|
|
> passation, ou retour après six mois. Ce n'est pas une unité d'apprentissage : c'est un
|
|
> **ordre d'opérations**. Il ne contient presque rien en propre, il t'envoie au bon endroit
|
|
> dans le bon ordre.
|
|
|
|
**La règle avant toutes les autres :** ce wiki est publié depuis le dépôt (`wiki/`). Une page
|
|
modifiée dans l'interface de la forge est **détruite** à la publication suivante. On lit ici,
|
|
on écrit dans le dépôt.
|
|
|
|
---
|
|
|
|
## ① Dans quel état hérites-tu ?
|
|
|
|
**Avant de toucher à quoi que ce soit.** Tu ne sais pas encore si tu reprends un système sain
|
|
ou une panne déjà commencée, et personne ne te le dira. Ces commandes ne modifient rien et
|
|
sortent en erreur s'il y a un écart entre ce qui tourne et ce que le plan décrit.
|
|
|
|
```
|
|
make instance-courante # vers quel écosystème pointe l'instance active ?
|
|
make prouver # le dépôt est-il cohérent avec lui-même ? (aucun appel réseau)
|
|
|
|
make identite-plan # realm, fédération LDAP, mappeurs, politique de mot de passe, comptes
|
|
make certificats-plan # ce que le disque porte contre ce que la mémoire sert
|
|
make expositions-plan # chaque service publié répond-il — depuis l'edge et depuis ton poste
|
|
make postgresql-plan # le chiffrement est-il imposé, et à quels réseaux
|
|
make courriel-plan # Postfix → LDAP → LMTP → Dovecot → IMAP, file d'attente comprise
|
|
make frontiere-mesurer # ce qui n'est pas déclaré à la frontière est-il refusé ?
|
|
```
|
|
|
|
Quelques minutes pour ce qui demandait une journée d'enquête à la main. C'est aussi le
|
|
premier réflexe **après** la reprise : après tout changement, après une panne, avant
|
|
d'appeler quelqu'un.
|
|
|
|
> **`make prouver` ne suffit pas, et c'est important de le savoir tout de suite.** Il lit le
|
|
> dépôt, jamais les machines. Le 2026-08-08, l'autorité de certification de la flotte est
|
|
> restée expirée **huit heures** sous un harnais entièrement vert. Voir
|
|
> [Vérifier le déployé](Vérifier-le-déployé).
|
|
|
|
Détail de ce que chaque devis vérifie — et de ce qu'il ne vérifie pas : `docs/devis-services.md`.
|
|
|
|
---
|
|
|
|
## ② Entrer
|
|
|
|
Un prérequis et trois pièges, tous à la première connexion. Le runbook complet est dans
|
|
`docs/autorisation.md` **§6** ; voici l'ordre et la raison de chaque geste.
|
|
|
|
**1. La clé de voûte — une voûte, une clé.** Chaque dépôt a **sa** clé, nommée d'après lui :
|
|
`~/.config/setops-vault-<dépôt-en-minuscules>`. Il n'y a **rien à exporter** — le `Makefile`
|
|
les rassemble seul (`scripts/voutes.py` → `ANSIBLE_VAULT_IDENTITY_LIST`). Pour voir ce que
|
|
cette machine peut ouvrir :
|
|
|
|
```
|
|
python3 scripts/voutes.py etat
|
|
```
|
|
|
|
**Sans la clé de ton écosystème, rien n'est possible** — ni les devis ci-dessus, ni un
|
|
déploiement. C'est la première chose à sortir de la machine (`make cles-exporter`, cf.
|
|
`docs/sortir-les-cles-du-poste.md`), avec les `vault.yml` de chaque instance, qui ne sont
|
|
pas versionnés.
|
|
|
|
> Ce paragraphe a désigné un `ANSIBLE_VAULT_PASSWORD_FILE` unique jusqu'au 2026-09-06. Ce
|
|
> n'est plus le mécanisme, et la raison compte : un seul mot de passe ouvrait alors *toutes*
|
|
> les voûtes de la flotte, celle de l'hébergeur comprise. Compromettre le plus petit
|
|
> locataire, c'était obtenir les secrets de tous.
|
|
|
|
**2. Le mot de passe d'amorçage, à changer avant tout le reste** (§6.1). L'annuaire refuse
|
|
toute opération tant qu'il n'est pas changé, sauf le changement lui-même. Ce n'est pas
|
|
optionnel.
|
|
|
|
**3. La racine mène à la mauvaise console** (§6.2). `https://auth.<domaine>/` redirige vers la
|
|
console du realm `master`, où ton compte n'existe pas. Keycloak répond *« invalid username or
|
|
password »* — exact, et parfaitement trompeur : le mot de passe est bon, c'est la porte qui ne
|
|
l'est pas.
|
|
|
|
**4. Fais confiance à l'AC interne** (§6.3), sinon ton navigateur criera sur chaque service.
|
|
`make ca-racine` récupère la racine et son empreinte, `make ca-empreinte` la relit **sur l'AC
|
|
elle-même** — c'est le témoin auquel comparer avant d'installer quoi que ce soit.
|
|
|
|
Et si tu te fermes dehors : §6.5.
|
|
|
|
---
|
|
|
|
## ③ De quoi c'est fait
|
|
|
|
Rien de tout ça n'est écrit à la main — **tout se dérive du plan**, et c'est le sujet de
|
|
[Le plan & l'adressage dérivé](Le-plan-et-l-adressage-dérivé). Demande-le plutôt que de le
|
|
lire quelque part :
|
|
|
|
```
|
|
make inventaire # vérifie l'inventaire et affiche le graphe des groupes
|
|
make hote-afficher HOTE=<nom> # tout ce que le plan dérive pour un hôte
|
|
make inventaire-ui # la même chose, en console web
|
|
```
|
|
|
|
| Pour comprendre | Va lire |
|
|
|---|---|
|
|
| ce que fait chaque service et pourquoi celui-là | [Accueil du wiki](Home), unités d'apprentissage |
|
|
| qui parle à qui, sur quel port | `docs/flux-conception.md` |
|
|
| comment un service en atteint un autre | [Liaisons (bindings)](Liaisons-bindings) |
|
|
| la carte du dépôt, pour **modifier** | `docs/carte-set-ops.md` |
|
|
|
|
---
|
|
|
|
## ④ Quand ça casse
|
|
|
|
Les procédures : `docs/runbooks-exploitation.md`.
|
|
|
|
Deux réflexes qui évitent la moitié des fausses pistes :
|
|
|
|
- **Un certificat renouvelé sur disque n'est pas un certificat servi.** Tant que nginx,
|
|
Postfix ou slapd n'ont pas été rechargés, ils servent l'ancien depuis la mémoire.
|
|
`make certificats-plan` compare les deux, justement.
|
|
- **Répare avec `make deployer`, constate avec les devis.** Ce sont deux gestes différents, et
|
|
les confondre fait perdre l'information au moment où elle sert.
|
|
|
|
---
|
|
|
|
## ⑤ Ce qui va te mentir
|
|
|
|
Un écosystème ne tombe pas en panne franchement : il te donne d'abord un **signal faux**. Et
|
|
un signal faux coûte une demi-journée à qui n'est pas prévenu.
|
|
|
|
**La règle qui les couvre tous : quand une mesure accuse un composant, vérifie d'abord que ton
|
|
instrument mesure ce que tu crois.** Une sonde porte toujours un **contrôle** — une cible dont
|
|
tu connais déjà la réponse. Si le contrôle ment, ne conclus rien.
|
|
|
|
Les trois que tu rencontreras, et où chacun est traité :
|
|
|
|
| Le signal | Ce qu'il te fera croire | Où c'est expliqué |
|
|
|---|---|---|
|
|
| un `connect()` TCP qui réussit **vers le vide** | que le port est ouvert | `docs/frontiere-opnsense.md` — la frontière répond à la poignée sans jamais relayer. Le contrôle : sonder `172.31.99.99`, et n'accepter que la **livraison**. C'est ce que fait `make frontiere-mesurer`. |
|
|
| `make prouver` **tout vert** | que le système va bien | [Vérifier le déployé](Vérifier-le-déployé) — les preuves lisent le dépôt, jamais les machines. |
|
|
| `Connection timed out during banner exchange` | que le réseau est en cause | `docs/runbooks-exploitation.md` **§3** — c'est le plus souvent une VM pas encore là, ou `sshd` qui refuse une rafale. |
|
|
|
|
---
|
|
|
|
## Ce que tu dois changer en priorité
|
|
|
|
Avant d'oublier, et c'est dans `docs/autorisation.md` §6.8 : le mot de passe d'amorçage
|
|
(section ② ci-dessus), les secrets restants de la voûte, et tout accès hérité de la livraison
|
|
qui n'est pas à toi.
|