Some checks are pending
verifier / verifier (push) Waiting to run
L'exploitant, apres le refactor : « je n'y comprends rien ». C'est la mesure qui compte — la regle fondatrice du depot est qu'un humain pilote sans IA, et une correction qu'il ne peut pas expliquer ne lui appartient pas. - L'unite « La preuve » gagne une section : le defaut le plus dangereux n'est pas l'erreur, c'est la COPIE. Neuf copies ne vieillissent pas ensemble, et la divergence ne se voit jamais de l'interieur d'une copie. Avec le cas vecu — un devis qui repondait CONFORME sur le mauvais ecosysteme parce que les deux avaient les memes valeurs. - Le glossaire gagne « source unique » et « resolution d'instance » ; P39 les exige. - Le rapprochement qui rend la chose evidente : c'est la meme lecon que proxmox-hebergeur.yml, ou les listes du cluster recopiees chez chaque tenant avaient deja diverge. Une source, pas N copies — pour les donnees comme pour le code. Plan de recette regenere. make verifier 41/41. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
360 lines
16 KiB
Markdown
360 lines
16 KiB
Markdown
# 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*, dans `Set-OPS-Modeles`. Les
|
||
modèles sont les **offres** : `forge`, `identite`, `collaboration`…
|
||
|
||
**Socle** — Le modèle minimal public : DNS, PKI, edge TLS, relais courriel.
|
||
|
||
**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ù
|
||
*un seul* commutateur qui route, et les chemins doublés ailleurs.
|
||
|
||
**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.
|