Set-OPS-Public/wiki/Glossaire.md
Daniel Allaire 5bc3bceac1
Some checks failed
verifier / verifier (push) Has been cancelled
documentation : la tournee des 74 documents, parce qu un balayage ne lit pas
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
2026-09-06 16:18:23 -04:00

365 lines
16 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Glossaire
Tout mot que Set-OPS te met sous les yeux se trouve ici. Chaque entrée dit **ce que c'est**,
et pourquoi ce dépôt s'en sert — pas seulement sa définition.
Les mots *en italique* renvoient à une autre entrée ; les liens mènent à l'**unité
d'apprentissage** qui développe la notion.
> **Règle de ce glossaire.** Un terme employé par le dépôt et absent d'ici est un défaut.
> La preuve **P39** le vérifie. Ce qu'elle ne peut pas voir : un mot que personne n'a
> pensé à déclarer — elle garde une liste, elle ne devine pas.
---
## Le plan, et ce qui en dérive
**Plan** — La source unique de vérité (`instance/plan/` : serveurs, applications, bases,
domaines, nomenclature). On l'édite ; l'*inventaire* en est **généré**, jamais l'inverse.
**Index (seed)** — Le **seul** intrant d'adressage d'une *instance*. Tout en descend :
supernet `10.<index>.0.0/16`, *VLAN* `1000+index×10+zone`, *VMID*, *VNet*. Unique dans la
*fédération*. Cf. [Le plan & l'adressage dérivé](Le-plan-et-l-adressage-dérivé).
**Adressage dérivé** — Les adresses ne sont pas saisies, elles se **calculent**. Deux
valeurs ne peuvent donc pas se contredire : il n'y en a qu'une, et le reste en découle.
**Nomenclature** — Le registre du modèle réseau : *zones*, placement des fonctions, et
l'*index*. Ne contient **aucune** adresse (preuve P20).
**Zone** — Un domaine de sécurité : un `/24` et un *VLAN*. Frontière, Identité, Données,
Services-infra, Observabilité, Applications. Un pare-feu les sépare.
**Supernet** — Le grand bloc d'adresses d'un tenant (`10.29.0.0/16`), dont ses *zones*
découpent des tranches.
**CIDR** — La notation `10.29.16.0/24` : une adresse, puis le nombre de bits **figés**.
`/24` fige les trois premiers nombres — 254 machines possibles.
**DIFF VIDE** — État sain : le *plan* reproduit **exactement** l'*inventaire* appliqué.
Vérifié par `make instancier`.
**Instance** — Un écosystème réel (`../OPS-<nom>`) : son domaine, son *index*, sa *voûte*.
L'active est celle que pointe le lien `instance/`.
**Tenant** — Le même objet, vu depuis la *fédération* : un écosystème isolé parmi d'autres.
**Fédération** — L'ensemble des *instances* qui cohabitent sur une infrastructure
partagée, chacune avec son *index*. Cf. [Multi-instance & fédération](Multi-instance-et-fédération).
**`federe: false`** — Drapeau qui **exclut** une instance des devis du site : ni *VLAN*, ni
règles de frontière, ni *VNet* ne lui sont réservés. Pour un bac à sable local, ou pour un
écosystème encore à l'état de plan.
**Modèle** — Un *plan* générique réutilisable, sans *voûte*. Le dépôt public en fournit
**un** (`exemples/modeles/socle`) ; les modèles assemblés par offre — `forge`, `identite`,
`collaboration`… — vivent dans le dépôt privé `Set-OPS-modeles`.
**Socle** — Le modèle minimal public, **quatre VM** : DNS interne (PowerDNS), PKI
(step-ca), edge TLS (nginx) et **magasin courriel** (Dovecot). C'est un magasin de boîtes,
pas un relais : le MTA s'ajoute ensuite.
**Liaison (binding)** — Relation déclarée entre entités du plan (app→base, app→app),
résolue par le moteur. Cf. [Liaisons (bindings)](Liaisons-bindings).
**Hôte fantôme** — Erreur de plan : une application posée sur un hôte non déclaré. Refusée
par la preuve P06.
---
## Les machines
**VM** — Machine virtuelle : un ordinateur complet simulé par un *hyperviseur*.
**Hyperviseur** — La machine physique qui fait tourner les *VM*. Ici : Proxmox.
**Gabarit (template)** — Une VM **figée** qui sert de moule. Chaque machine de la flotte
en est un clone. Le gabarit doré de Set-OPS s'appelle `modeleSetOPS`.
**Clone** — La copie du *gabarit* qui devient une machine réelle. Deux minutes, contre une
installation complète.
**VMID** — Le numéro d'une VM sur le cluster. Set-OPS le **dérive** (schéma *ip-miroir*) au
lieu de le tirer au hasard.
**ip-miroir** — Schéma où le *VMID* **contient** l'adresse IP et le tenant : le numéro se
lit d'un coup d'œil.
**cloud-init** — Le mécanisme qui configure une VM **à sa toute première seconde** :
adresse IP, nom, clé SSH. Sans lui, un clone naîtrait identique à son moule, jumeau de
tous les autres.
**Snapshot** — Photo d'une VM à un instant. Utile pour revenir en arrière ; ce n'est
**pas** une sauvegarde (elle vit sur le même stockage).
**systemd** — Le chef d'orchestre des services d'une machine Linux : il démarre, arrête et
surveille. « Un service » veut dire « une unité systemd ».
---
## Ansible : décrire au lieu d'exécuter
**Ansible** — L'outil qui applique une **description** à des machines, par SSH. Cf.
[Infra as Code & idempotence](Infra-as-Code-et-idempotence).
**Playbook** — Un fichier qui dit **quoi appliquer, à qui**. Ici : un par groupe
(`playbooks/groupes/<groupe>.yml`).
**Rôle** — Le paquet qui sait installer et configurer **une** chose (`serveur_nginx`,
`client_backup`). C'est l'unité réutilisable.
**Inventaire** — La liste des machines et de leurs groupes (`hosts.yml`). **Généré** depuis
le plan : on ne l'édite jamais à la main.
**group_vars** — Les valeurs d'un groupe de machines, rangées par fichier. C'est là que
vivent les *intrants* non secrets.
**Handler** — Une action qui ne se déclenche **que si** quelque chose a changé — typiquement
recharger un service quand sa configuration a bougé.
**Idempotence** — Rejouer la même description dix fois donne le même résultat. La deuxième
exécution ne change rien (`changed=0`). C'est ce qui rend une reconstruction sûre.
**Voûte (vault)** — Le fichier **chiffré** des secrets d'une instance. Jamais dans un
modèle, jamais en clair. Seul le gabarit `vault.yml.example` — des **noms**, pas des
valeurs — est versionné.
---
## Le réseau
→ Unité complète : [Le réseau des tenants](Le-réseau-des-tenants)
**Underlay** — Le réseau **physique** : câbles, commutateurs, adresses des hyperviseurs. Il
ne connaît aucun tenant.
**Overlay** — Les réseaux **virtuels** des tenants, transportés par-dessus l'*underlay*.
**VLAN** — Une étiquette posée sur chaque trame pour séparer des réseaux qui partagent un
câble. Limite : 4094 étiquettes, et chaque commutateur doit les connaître.
**VXLAN** — L'encapsulation : la trame d'un tenant voyage **dans une enveloppe**. Le réseau
physique ne voit que des colis. L'enveloppe coûte **50 octets** — d'où le *MTU* 1450.
**EVPN** — Le mécanisme par lequel les hyperviseurs s'annoncent les machines qu'ils
hébergent. Sans lui, la table des destinations serait tenue à la main.
**SDN** — *Software-Defined Networking* : le réseau se **décrit** et se pose par API, au
lieu de se câbler à la main.
**VNet** — Le réseau virtuel d'**une zone** d'un tenant (`t29fron`) : le point où la carte
d'une VM se branche.
**VRF** — Une table de routage **étanche**. Dans celle du tenant A, les réseaux du tenant B
n'existent pas. Ce n'est pas une interdiction, c'est une ignorance.
**Strophe (FRR)** — Le bloc de configuration qu'on pose par tenant dans
`/etc/frr/frr.conf.local`, sur chaque hyperviseur : sa **sortie** et son **puits**.
**FRR** — Le démon de routage des hyperviseurs (*FRRouting*).
**`nexthop-vrf`** — Emprunter **une seule** adresse à une autre table de routage, au lieu
d'importer celle-ci en entier. La différence entre une porte et un mur abattu.
**Blackhole (puits)** — Une route qui **absorbe** le trafic vers les adresses non
attribuées d'un tenant, pour qu'il ne parte pas errer ailleurs.
**MTU** — La plus grosse trame qu'un lien accepte. 1500 par défaut ; 1450 dans l'*overlay*
(l'enveloppe VXLAN prend 50). Se tromper suspend les grosses réponses sans casser les
petites — la panne la plus déroutante du domaine.
**SVI** — L'adresse de passerelle portée par un **commutateur** pour un VLAN. Set-OPS ne
s'en sert plus : le routage des tenants vit sur l'hyperviseur (*VRF*).
**Pont (bridge)** — Le commutateur **virtuel** d'un hyperviseur (`vmbr1`). Les VM de la
flotte se branchent sur leur *VNet*, pas sur un pont nu.
**IPAM** — Le registre qui attribue les adresses. Ici, c'est la **dérivation** : personne
ne tient de liste.
**Spanning-tree (STP)** — Le protocole qui empêche une boucle de commutateurs de saturer le
réseau. Il élit une racine ; c'est ce que désigne `routeur` dans l'*underlay*.
**MLAG** — Deux commutateurs qui se font passer pour un seul. Set-OPS n'en a pas — d'où
les chemins doublés ailleurs (MPIO côté stockage, `active-backup` côté flotte). *(Cette
entrée concluait « d'où un seul commutateur qui route » : plus aucun ne route. Le routage
des tenants vit sur l'hyperviseur, cf. l'entrée* SVI *ci-dessus.)*
**nftables** — Le pare-feu **de chaque machine** Linux. Set-OPS le dérive du registre des
flux.
**Policy drop** — Politique par défaut : *tout ce qui n'est pas autorisé est refusé*. Sans
règles chargées, elle mure la machine — d'où l'importance de `make flux`.
**Frontière** — Le pare-feu de bordure (OPNsense), entre l'écosystème et l'extérieur. Hors
flotte Ansible : piloté par API.
**FQDN** — Le nom complet d'une machine, `forge.genese.internal` — pas seulement `forge`.
---
## Les noms
→ Unité complète : [DNS & résolution](DNS-et-résolution)
**DNS** — L'annuaire qui traduit un nom en adresse.
**Le plancher** — La première couche de résolution : `/etc/hosts`, posé par le socle
**avant** que le DNS existe. Sans lui, rien ne peut s'amorcer.
**Résolveur** — Le service qui pose les questions au DNS pour une machine (ici Unbound,
local à chaque hôte).
**Reverse proxy** — Le portier : il reçoit toutes les requêtes web et les distribue au bon
service derrière. Cf. [Reverse-proxy & TLS](Reverse-proxy-et-TLS).
**vhost** — La configuration d'**un site** dans le *reverse proxy* : quel nom, vers quel
service.
**WAF** — Filtre qui inspecte les requêtes web et bloque les attaques connues.
**Edge** — La machine de bordure qui publie les services web (ici nginx).
---
## La confiance
→ Unité complète : [PKI & confiance](PKI-et-confiance)
**PKI** — L'ensemble qui fabrique et gère les certificats.
**CA (autorité de certification)** — Celle qui **signe** les certificats. Ici, `step-ca`,
interne : l'écosystème est sa propre autorité.
**Certificat** — Une pièce d'identité pour une machine : ce nom, cette clé, signé par la
*CA*.
**ACME** — Le protocole qui **automatise** la demande et le renouvellement d'un certificat.
Personne ne le fait à la main.
**SAN** — Les noms qu'un certificat couvre. Set-OPS les **dérive** du plan.
**TLS** — Le chiffrement d'une connexion (le « s » de https).
**mTLS** — TLS **des deux côtés** : le client prouve aussi son identité. C'est le
zéro-confiance entre serveurs.
---
## L'identité
→ Unité complète : [Identité & SSO](Identité-et-SSO)
**LDAP** — L'annuaire des personnes et des groupes : la source de vérité des identités.
**LDAPS** — LDAP chiffré.
**SSO** — *Single Sign-On* : une seule authentification pour toutes les applications.
**OIDC** — Le protocole moderne du *SSO* sur le web. C'est lui derrière « Se connecter
avec… ».
**SAML** — L'ancêtre d'*OIDC*, encore répandu en entreprise.
**Realm** — Le « royaume » d'un serveur d'identité : un espace de comptes, de groupes et de
règles. Un par écosystème.
**RBAC** — Donner des droits à des **rôles**, pas à des personnes. Cf.
[Autorisation & RBAC](Autorisation-et-RBAC).
---
## Le courriel
→ Unité complète : [Courriel (SMTP/IMAP)](Courriel)
**SMTP** — Le protocole qui **transporte** un courriel d'un serveur à l'autre.
**MTA** — Le serveur qui fait ce transport (ici Postfix).
**IMAP** — Le protocole par lequel **tu lis** ta boîte, depuis ton téléphone ou ton client.
**LMTP** — Le dernier mètre : le MTA remet le message au serveur qui **détient** les boîtes
(ici Dovecot).
**DKIM** — La signature qui prouve qu'un courriel vient bien de ton domaine.
---
## L'état, et sa preuve
**SQLite** — Une base de données qui tient dans **un fichier**, sans serveur ni compte.
Suffisante pour une petite forge ; c'est ce que porte patient 0. À l'inverse de
*PostgreSQL*, qui est un service à part entière — un serveur, une zone, un secret.
**restic** — L'outil de sauvegarde chiffrée et dédupliquée. Cf. [Sauvegardes](Sauvegardes).
**Sauvegarde vs snapshot** — L'infrastructure se **reconstruit** depuis le code ; seul
l'**état** (annuaire, bases, courriel, forge) se sauvegarde. Cf. [Sauvegardes](Sauvegardes).
**Devis** — Une commande qui **interroge le système réel** et montre l'écart avec le plan,
sans rien écrire (`make sdn-plan`, `make placement-plan`).
**Preuve (Pxx)** — Une vérification rejouable de `make prouver` qui garde une classe
d'erreur. Cf. [La preuve](La-preuve).
**Source unique** — Le principe qui traverse tout le dépôt : une information vit à **un**
endroit, et tout le reste en dérive. Neuf copies d'une même règle ne vieillissent pas
ensemble — et la divergence ne se voit jamais de l'intérieur d'une copie.
**Résolution d'instance** — Comment un script sait **quel écosystème** il regarde : la
variable `SETOPS_INSTANCE`, sinon le lien `instance`. Une seule fonction y répond pour tout
le moteur (`inventory_rules.instance_courante`) ; la preuve P41 refuse qu'on en réécrive
une deuxième.
**Harnais** — L'ensemble des preuves. Un `make prouver` vert veut dire : aucune des classes
d'erreur connues n'est présente.
**Chèque vert sur un périmètre vide** — Le piège central de ce dépôt : une vérification qui
réussit **sans rien avoir mesuré**. Une sauvegarde de zéro fichier, un devis qui lit un
intrant périmé, une preuve qui ne peut pas échouer. À chaque « ✅ », se demander **sur
quoi** il a porté.
**GUI** — La console web d'exploitation (`make inventaire-ui`). Cf.
[Le GUI](Le-GUI-console-d-exploitation).
**CI** — La vérification automatique à chaque poussée (`make ci` la rejoue à l'identique).
---
## La filiation
→ Unité complète : [Filiation, signatures & témoins](Filiation-signatures-et-témoins)
**Génome** — Les **quatre dépôts** sans lesquels un écosystème ne peut pas être refabriqué :
le *moteur*, l'*instance*, le dépôt de l'hébergeur, les *modèles*. `make genome` les nomme.
**Parenté** — Le fichier `parente.yml` d'une instance : de quel moteur elle descend, à quel
*commit*, sous quelle *étiquette signée*. Sans lui, un écosystème ne sait plus d'où il vient.
**Commit** — Un instantané du dépôt, qui porte l'**empreinte** du précédent. Modifier le
passé change toutes les empreintes suivantes : c'est ce qui rend une histoire vérifiable.
**Empreinte (hachage)** — Une courte signature calculée d'un contenu. Deux contenus
différents n'ont pas la même — c'est ce qui permet de détecter une modification.
**Arbre de Merkle** — La structure où chaque élément porte l'empreinte du précédent. Git en
est un ; une blockchain aussi. L'intégrité vient de là, pas d'une chaîne de blocs.
**Étiquette (tag)** — Un nom posé sur un état précis du dépôt (`v2026.08.21`). Signée, elle
devient un point de repère **vérifiable** : « c'est de cet état-là que je descends ».
**Signature** — Le scellé posé avec une clé privée. Qui a la clé **publique** peut vérifier ;
qui n'a pas la privée ne peut pas contrefaire. Sans elle, un nom d'auteur est déclaratif.
**`.git-allowed-signers`** — Le registre, **versionné**, des clés autorisées à signer cette
lignée. Retirer une ligne révoque pour la suite ; le passé signé reste vérifiable.
**Témoin** — Une copie vivante et indépendante du *génome*. Réécrire l'histoire suppose de
convaincre tous les témoins : c'est la lignée elle-même qui protège la lignée.
**Journal de transparence** — Un registre append-only, auditable par un tiers (Certificate
Transparency, Sigstore). La réponse mûre quand plusieurs organisations doivent constater les
mêmes faits sans se faire confiance — et l'alternative sobre à une blockchain.
**Horodatage (RFC 3161)** — Prouver qu'un document **existait** à une date, par un tiers.