ajoute le self-healing des VM (sonde de santé, relance automatique, stock écarté) — bloc A, semaine 6

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Adam Belkacemi 2026-10-12 21:12:43 +02:00
parent b054888f5a
commit f2649d0f8b
21 changed files with 938 additions and 28 deletions

View file

@ -139,23 +139,44 @@ de test affiché en clair (credential supprimée aussitôt) ; un déploiement en
11. Sonde de supervision hors du serveur (petite VM ailleurs, ou service
externe) et nom DNS `turn.syllabuslab.fr` pour la visio.
## Prochaines étapes du bloc A
**Décision d'Adam (2026-10-12) : pas de montée de version d'OpenStack.** La
2025.2 reste en place (stable, préférée aux dernières versions) ; la semaine
7 du CLAUDE.md est donc écartée pour l'instant.
### 1. Self-healing et post-mortem (semaine 6 du CLAUDE.md)
## Mise à jour du 2026-10-12 : sauvegarde d'OpenStack et self-healing
- Détecter et relancer : VM figée (l'agent invité ne répond plus → `nova
reboot --hard`), stack du stock en erreur (supprimée et recréée : déjà en
partie fait par le ménage du stock), service arrêté (`Restart=on-failure` sur
toutes les unités maison, à vérifier une par une), conteneur Kolla arrêté.
- Une panne provoquée par cas (`kill -STOP` du QEMU d'une VM du stock, arrêt
du correcteur, arrêt de `nova_compute`), réparée sans intervention, chacune
suivie d'un post-mortem dans `docs/postmortems/`.
- Avant : sauvegarde de la base OpenStack, sinon une réparation ratée n'a pas
de filet.
Après la fin de la mission initiale, Adam a demandé de continuer le bloc A
(sans montée de version) :
### 2. Montée de version d'OpenStack (semaine 7)
- **Base d'OpenStack désormais sauvegardée** (Keystone, Nova, Neutron,
Glance, Heat, Placement) et testée chaque semaine comme celle du portail.
Dette retirée. Détails : `docs/journal.md`, `docs/runbooks/sauvegardes.md`.
- **Self-healing des VM fait** (semaine 6) : une VM muette (stock ou élève)
est détectée et réparée automatiquement par `labs:surveiller-vm`, chaque
minute. **Panne provoquée sur le serveur réel** (VM gelée, `virsh
suspend`) : détectée et redémarrée seule, sans intervention humaine.
Post-mortem : `docs/postmortems/2026-10-12-vm-figee-self-healing.md`.
Runbook : `docs/runbooks/self-healing.md`.
- Ne sont **pas** couverts par ce self-healing (hors sujet, déjà traités
ailleurs) : un service ou un conteneur Kolla arrêté (déjà
`Restart=always`/`unless-stopped`, vérifié le 2026-10-12 : 0 unité en
échec), et la panne du serveur lui-même (toujours sans sonde extérieure).
- Dette ajoutée : pas encore d'alerte Prometheus dédiée sur
`syllabus_vm_panne_generale` ni `syllabus_vm_irreparables`.
- Passer de la branche `stable/2025.2` à un tag (version figée), puis préparer
## Prochaines étapes du bloc A (restantes)
### Avant le pilote (semaine 8)
- TURN sur 443 pour la visio (réseaux scolaires qui bloquent l'UDP).
- Alerte Prometheus sur la panne générale des VM et les VM irréparables.
- Sonde de supervision hors du serveur.
- Les points « Adam doit faire lui-même » ci-dessus (clé age, CGU, test avec
un collègue prof…).
### Montée de version d'OpenStack (semaine 7) — écartée pour l'instant
Si Adam change d'avis : passer de la branche `stable/2025.2` à un tag (version figée), puis préparer
la série suivante. Attention : 2026.1 ne supporte plus Debian 12. Une montée
de version d'OpenStack passe donc d'abord par **Debian 13** (montée de
version de l'OS sur un serveur unique, à préparer avec le mode rescue).
@ -163,10 +184,11 @@ de test affiché en clair (credential supprimée aussitôt) ; un déploiement en
vérifications (`capacite.py` réduit, `parcours-lab.py`, `visio-e2e.mjs`),
retour arrière. Retour d'expérience dans le journal.
### 3. Pilote avec une vraie classe (semaine 8)
### Pilote avec une vraie classe (semaine 8)
- Prérequis : TURN 443, base OpenStack sauvegardée, clé age confirmée, sonde
- Prérequis : TURN 443, clé age confirmée, sonde
extérieure, mentions légales complètes, test avec un collègue (point 9).
La base OpenStack est désormais sauvegardée.
- Pendant : relever le temps d'ouverture réel (p95), la mémoire, la charge de
la visio, les corrections réussies et échouées, les mains levées.
- Après : retours des élèves et du prof, métriques dans `docs/capacite.md`,