1. Contexte
Dans une infrastructure virtualisée, une coupure électrique non maîtrisée peut entraîner des corruptions de données, des arrêts brutaux de machines virtuelles et des pertes de services.
L’objectif de ce projet était de mettre en place un mécanisme fiable permettant de surveiller l’état de l’onduleur et de déclencher un arrêt propre et ordonné des systèmes en cas de coupure secteur.
2. Objectifs
- Superviser l’état de l’onduleur (charge, autonomie, événements)
- Garantir un arrêt contrôlé des systèmes et machines virtuelles
- Prévenir les corruptions de données
- Améliorer la résilience globale de l’infrastructure
- Tester et valider les scénarios de coupure et de reprise
3. Architecture
Architecture basée sur un serveur NUT intégré à vSphere via l’API (govc), permettant un arrêt ordonné et conditionnel des machines virtuelles (étiquettes vCenter) en cas de coupure électrique critique, avec supervision, journalisation, sauvegarde et restauration maîtrisées.
Schéma du fonctionnement :

Envoi shutdown via govc (API) :

Rôles :
- Onduleur (UPS) : fournit l’énergie
- Serveur NUT : observe et voit l’onduleur grâce à NUT
- Script : déclenché par NUT si coupure de courant ET batterie faible (évite faux positif) → appel govc (Mode TEST/PROD avec logs)
- govc : exécute le script et contact l’API de vSphere pour envoyer shutdown sur des VMs prédéfinies par un TAG et respecte un ordre précis, nécessite un compte de service ayant les droits sur vSphere (besoin d’une session AD puis plus la peine du DC).
4. Réalisations techniques
- Mise en place d’un serveur NUT dans une machine virtuelle Linux avec passthrough USB de l’onduleur depuis l’hôte ESXi
- Configuration fine des événements NUT afin de déclencher l’arrêt uniquement lors d’une condition critique (OB + LB), évitant tout arrêt intempestif
- Développement d’un script d’orchestration personnalisé déclenché par NUT :
- gestion distincte des modes TEST et PRODUCTION
- journalisation détaillée des actions
- mécanisme de verrouillage pour éviter les doubles exécutions
- Intégration avec vSphere via l’API (govc) pour piloter l’infrastructure virtualisée :
- arrêt ordonné des machines virtuelles
- ciblage dynamique par tags VMware
- respect d’un ordre d’arrêt maîtrisé (services critiques → infrastructure)
- Choix volontaire de ne pas arrêter l’hôte ESXi par logiciel, afin de garantir un redémarrage fiable basé sur la perte réelle d’alimentation (AC loss)
- Mise en place d’une supervision complète de l’UPS et du serveur NUT via Zabbix (états, autonomie, événements) avec visualisation dans Grafana
- Sauvegarde sécurisée de la configuration NUT et des scripts par rsync en mode pull depuis TrueNAS
- Tests complets de coupure et de reprise afin de valider le comportement en conditions réelles
5. Compétences mobilisées
- Administration Linux
- Network UPS Tools (NUT)
- Continuité de service & résilience
- Exploitation d’infrastructure
- Scripting Shell (Bash)
- Virtualisation (VMware vSphere)
- API vSphere / govc
- Supervision (Zabbix, Grafana)
- Gestion des incidents
- Tests de scénarios de panne
- Documentation technique
6. Résultat

Tests

Balises / étiquette vCenter

