From 150121089d16c95e8a89658d6db2df4c783730ff Mon Sep 17 00:00:00 2001 From: Daniel Allaire Date: Thu, 23 Jul 2026 15:07:52 -0400 Subject: [PATCH] =?UTF-8?q?wiki=20:=20unit=C3=A9=20=C2=AB=20Le=20GUI=20(co?= =?UTF-8?q?nsole=20d'exploitation)=20=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cinquième page de la vague méthode. Au moule à 4 temps : éditer la SOURCE (le plan) pas l'artefact, dry-run avant apply, et l'invalide rendu impossible à saisir (le ` sans hôte fantôme) ; la flotte et la bascule. - **Glossaire** — 24 concepts en une phrase (était « à venir »). Raccordées dans `Home.md` (deux unités-pilotes : services **et** méthode) et `_Sidebar.md` diff --git a/wiki/Le-GUI-console-d-exploitation.md b/wiki/Le-GUI-console-d-exploitation.md new file mode 100644 index 0000000..35dc565 --- /dev/null +++ b/wiki/Le-GUI-console-d-exploitation.md @@ -0,0 +1,85 @@ +# Le GUI (console d'exploitation) + +> **Unité d'apprentissage.** Moule : ① concept → ② Set-OPS → ③ transférable → ④ à toi de jouer. + +--- + +## ① Le concept *(générique)* + +Un moteur d'infrastructure a besoin d'une **interface humaine** — sinon il n'est utilisable que +par son auteur (ou une IA). Le principe fondateur : **un opérateur doit tout piloter seul**, sans +l'auteur et sans IA (« exploitable sans IA »). + +Une bonne console d'exploitation obéit à trois règles : + +- **Elle édite la SOURCE, pas l'artefact.** On modifie le *plan* (l'état voulu), jamais l'inventaire + généré. La console montre la vérité, elle ne la contourne pas. +- **Elle prévisualise avant d'agir.** *dry-run* (voir ce qui changerait) avant *apply* (changer). +- **Elle empêche l'invalide.** Le meilleur garde-fou n'est pas un message d'erreur : c'est une + interface où l'erreur est **impossible à saisir**. + +--- + +## ② Comment Set-OPS le fait + +`make inventaire-ui` lance une console web **locale** (`127.0.0.1`, protégée par un jeton). Ses vues : + +| Vues **éditables** (le plan) | Vues **dérivées** (lecture seule) | +|---|---| +| Serveurs · Applications · Bases · Domaines · **Intrants** | Flux · Couches · **Réseau** (flotte + devis) | + +Le flux d'exploitation, de bout en bout : + +1. **Éditer** une vue du plan → **Sauvegarder** ; +2. **« Appliquer le plan »** → régénère l'inventaire (VMID/IP/VLAN **dérivés**) ; +3. **Vérifier** (dry-run) sur un hôte → prévisualise sans rien changer ; +4. **Déployer** → applique les rôles (confirmation **renforcée** si l'instance est en **PROD**) ; +5. **Créer la VM** → clone sur Proxmox depuis le plan. + +**L'erreur rendue impossible.** Le champ « Hôte » d'une application est un `` « Hôte » ne montre **que des hôtes + réels**. Choisis le bon, **Sauvegarder**, **Appliquer**. Tu ne *peux pas* re-saisir le fantôme. +4. **Bascule d'instance.** Vue **Réseau**, bouton **« Activer »** sur une autre instance. Toutes + les vues suivent, sans redémarrer. +5. **Sens le garde-fou.** Essaie de sauvegarder un plan incohérent (ex. une base dont le + consommateur n'existe pas) : la console **refuse** avec une raison. L'invalide ne passe pas. +6. **Casse & répare.** Édite `hosts.yml` à la main, reviens dans la GUI, « Appliquer le plan » : ta + modification est **écrasée** par le plan. La source de vérité, c'est le plan — pas l'inventaire. + +--- + +## Pour aller plus loin *(dépôt)* +- Lancer : `make inventaire-ui` ; le code : `scripts/inventory_gui.py`. +- Ce que le GUI sait écrire (et la preuve) : `scripts/couverture_gui.py` (P19). +- Le flux plan → apply : unité **[Infra as Code & idempotence](Infra-as-Code-et-idempotence)**. +- La flotte : unité **[Multi-instance & fédération](Multi-instance-et-fédération)**. diff --git a/wiki/_Sidebar.md b/wiki/_Sidebar.md index df8cc06..496289a 100644 --- a/wiki/_Sidebar.md +++ b/wiki/_Sidebar.md @@ -23,6 +23,7 @@ - [Supervision & impact](Supervision-et-impact) *Socle & méthode* +- [Le GUI (console d'exploitation)](Le-GUI-console-d-exploitation) - [Virtualisation & clonage](Virtualisation-et-clonage) - [Sécurité & durcissement](Sécurité-et-durcissement) - [Infra as Code & idempotence](Infra-as-Code-et-idempotence)