# La méta-classe — une définition, tout l'écosystème Set-OPS se comporte comme une **méta-classe** : on n'écrit pas onze serveurs, on écrit *une* **définition d'écosystème** (le plan déclaratif) ; l'instanciation engendre la flotte entière, cohérente. Le réseau, la taille des VM, les groupes, les liens de bases (DSN) et l'exposition DNS sont **dérivés** — jamais saisis deux fois. > Concept acté dans [`positionnement.md`](positionnement.md) : « la définition > instancie toute la flotte ». La dérivation des ressources est décrite dans > [`dimensionnement-ressources.md`](dimensionnement-ressources.md). ## Schéma ```mermaid flowchart TB subgraph DEF["① DÉFINITION — la méta-classe (le plan déclaratif)"] direction LR NOM["nomenclature.yml
catégories · VLAN · fonctions"] SRV["serveurs.yml
VM = fonction + état + overrides"] APP["applications.yml
app → rôle · hôte · expose"] BD["bases-donnees.yml
serveurs_bd · DSN · portée"] DOM["domaines.yml
domaines publics · edge"] EMP["roles/*/meta/empreinte.yml
empreinte ressources"] TPL[("golden template
Debian 13 durci")] end subgraph GEN["② DÉRIVATION — make instancier (le constructeur)"] direction LR R1["réseau
VMID · VLAN · IP · gw"] R2["ressources
cœurs · RAM · disque"] R3["groupes
socle + services + état"] R4["liens
DSN + exposition DNS"] end subgraph INST["③ INSTANCES — la flotte (inventory hosts.yml)"] direction LR INV[["hosts.yml"]] VMS(("11 VM
infra-pki · dns · mail · edge
idm · data · obs · mon · forge · web")) end ECO["④ ÉCOSYSTÈME souverain en service
PKI · DNS · IdM/SSO · Données · Observabilité · Forge · Web"] DEF --> GEN --> INST TPL -. "clone + cloud-init" .-> VMS INV --> VMS INST -- "make deployer · rôles par groupe" --> ECO ``` ## Le même schéma en texte ``` ① DÉFINITION — la « méta-classe » (instance/plan/ + roles/*/meta/empreinte.yml) nomenclature · serveurs · applications · bases-données · domaines ⟦ golden template Debian 13 durci ⟧ │ make instancier ▼ ② DÉRIVATION — le constructeur (instancier.py · inventory_rules · filter_plugins) réseau (VMID·VLAN·IP·gw) · ressources (cœurs·RAM·disque) · groupes · DSN+DNS │ = instanciation ▼ ③ INSTANCES — la flotte (inventory hosts.yml : 11 VM cohérentes) infra-pki·dns·mail·edge · idm · data · obs · mon · forge · web ▲ clone du golden template + identité cloud-init │ make deployer (rôles Ansible par groupe) ▼ ④ ÉCOSYSTÈME souverain en service PKI · DNS interne · IdM+SSO · Bases · Observabilité · Forge · Web 1 définition ───────────────▶ N VM : réseau, taille, groupes, DSN, DNS (édite le plan) tout dérivé, rien saisi deux fois. ``` ## Pourquoi c'est une *méta*-classe Une classe ordinaire instancie **un** objet. Ici, **une** définition instancie un **ensemble cohérent** d'objets (VM + services + liens), avec leurs invariants garantis par dérivation plutôt que par discipline humaine. Éditer le plan, c'est faire évoluer la classe ; régénérer, c'est ré-instancier — de façon idempotente.