Set-OPS-Public/wiki/Glossaire.md
Daniel Allaire c0f610be33 patient 0 efface : l index 29 est libere, et le site n ouvre plus rien a 10.29.0.0/16
Ses machines n existaient plus depuis le 2026-09-06 (D-83), mais son plan
restait sur disque : la federation lui reservait l index 29 et quatre machines
du site lui ouvraient SSH, apt, DNS et HTTPS. Les commentaires et documents
vivants gardent leur lecon sans le nommer ; les archives restent telles quelles.

Pas encore sur le reseau : les regles regenerees attendent le runner du site.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 21:55:27 -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. À 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.