fastoch13

Untitled

Dec 1st, 2025
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 25.09 KB | None | 0 0
  1. # Documentation Complète - Sequencer v1.0.0
  2.  
  3. ## Table des matières
  4.  
  5. 1. [Vue d'ensemble](#vue-densemble)
  6. 2. [Installation et Configuration Initiale](#installation-et-configuration-initiale)
  7. 3. [Premier Démarrage - Création du Site et Admin](#premier-démarrage---création-du-site-et-admin)
  8. 4. [Ajout des Assets](#ajout-des-assets)
  9. 5. [Découverte des Machines Virtuelles](#découverte-des-machines-virtuelles)
  10. 6. [Configuration UPS et SNMP](#configuration-ups-et-snmp)
  11. 7. [Création et Gestion des Scénarios](#création-et-gestion-des-scénarios)
  12. 8. [Planification de Tâches](#planification-de-tâches)
  13. 9. [Surveillance Automatique UPS](#surveillance-automatique-ups)
  14. 10. [Interface Utilisateur](#interface-utilisateur)
  15. 11. [Services en Arrière-plan](#services-en-arrière-plan)
  16. 12. [Dépannage](#dépannage)
  17.  
  18. ---
  19.  
  20. ## Vue d'ensemble
  21.  
  22. **Sequencer** est une solution complète d'orchestration pour la gestion automatisée de l'infrastructure informatique, incluant :
  23.  
  24. - **Machines Virtuelles VMware** (ESXi, vCenter)
  25. - **Machines Physiques** (Linux, Windows)
  26. - **Onduleurs (UPS)** avec surveillance SNMP
  27. - **Scénarios d'allumage/extinction** automatisés
  28. - **Planification de tâches** récurrentes
  29. - **Surveillance automatique** des conditions UPS
  30.  
  31. ### Architecture
  32.  
  33. - **Backend**: FastAPI (Python 3.8+)
  34. - **Base de données**: PostgreSQL 14+
  35. - **Intégration VMware**: pyVmomi
  36. - **Surveillance SNMP**: pysnmp
  37. - **Authentification**: Sessions avec cookies sécurisés
  38. - **Interface**: HTML/JavaScript avec Bootstrap 5
  39.  
  40. ---
  41.  
  42. ## Installation et Configuration Initiale
  43.  
  44. ### Prérequis
  45.  
  46. - Ubuntu 22.04/24.04
  47. - PostgreSQL 14+
  48. - Python 3.8+
  49. - Accès réseau aux hôtes VMware et machines physiques
  50.  
  51. ### Installation des Dépendances
  52.  
  53. ```bash
  54. cd /opt/Orchestrator
  55.  
  56. # Installation des dépendances système
  57. make install
  58.  
  59. # Initialisation de la base de données
  60. sudo bash scripts/init_postgres.sh orchestrator_db orchestrator_user 'MotDePasse!Fort'
  61.  
  62. # Application du schéma de base de données
  63. make db-apply
  64.  
  65. # Installation et démarrage du service
  66. sudo make service
  67. ```
  68.  
  69. ### Vérification
  70.  
  71. ```bash
  72. # Vérifier le statut du service
  73. sudo systemctl status orchestrator
  74.  
  75. # Vérifier les logs
  76. sudo journalctl -u orchestrator -f
  77.  
  78. # Tester l'API
  79. curl http://127.0.0.1:8000/health
  80. ```
  81.  
  82. ---
  83.  
  84. ## Premier Démarrage - Création du Site et Admin
  85.  
  86. ### Accès à la Page de Configuration Initiale
  87.  
  88. Lors du premier démarrage, l'application détecte automatiquement qu'aucun site n'existe et redirige vers la page de configuration initiale :
  89.  
  90. **URL**: `http://<IP_SERVEUR>:8000/first-run`
  91.  
  92. ### Formulaire de Configuration
  93.  
  94. La page `/first-run` permet de configurer :
  95.  
  96. #### 1. Informations Administrateur
  97.  
  98. - **Nom d'utilisateur** : Identifiant de connexion (ex: `admin`)
  99. - **Mot de passe** : Mot de passe sécurisé
  100. - **Prénom** : Prénom de l'administrateur
  101. - **Nom** : Nom de l'administrateur
  102. - **Email** : Adresse email (optionnel)
  103.  
  104. #### 2. Informations du Site
  105.  
  106. - **Nom du site** : Nom complet du site (ex: "Datacenter Principal")
  107. - **Code du site** : Trigramme du site (3 caractères, ex: "DCP")
  108. - **Adresse** : Adresse physique du site (optionnel)
  109.  
  110. ### Processus de Création
  111.  
  112. 1. **Création de l'utilisateur administrateur**
  113. - Hashage du mot de passe avec bcrypt
  114. - Attribution des droits administrateur (`is_admin = True`)
  115. - Activation automatique (`is_active = True`)
  116.  
  117. 2. **Création du site**
  118. - Normalisation du code en majuscules (max 3 caractères)
  119. - Association avec l'utilisateur créateur
  120. - Enregistrement de l'adresse si fournie
  121.  
  122. 3. **Redirection automatique**
  123. - Après création réussie, redirection vers la page de connexion
  124. - L'utilisateur peut se connecter avec les identifiants créés
  125.  
  126. ### Exemple de Configuration
  127.  
  128. ```
  129. Informations Administrateur:
  130. - Username: admin
  131. - Password: SecurePassword123!
  132. - Prénom: Administrateur
  133. - Nom: Système
  134.  
  135. Informations Site:
  136. - Nom: Datacenter Principal
  137. - Code: DCP
  138. - Adresse: 123 Rue Example, 75000 Paris
  139. ```
  140.  
  141. ---
  142.  
  143. ## Ajout des Assets
  144.  
  145. ### Types d'Assets Supportés
  146.  
  147. 1. **ESXi / vCenter** (`vmware`)
  148. 2. **Machine Physique** (`physical`)
  149. 3. **Onduleur (UPS)** (`ups`)
  150.  
  151. ### Ajout d'un Hôte VMware (ESXi/vCenter)
  152.  
  153. **Page**: `/assets/add` → Sélectionner "VMware (ESXi/vCenter)"
  154.  
  155. #### Informations Requises
  156.  
  157. - **Label** : Nom d'affichage (ex: "ESXi-Production-01")
  158. - **Adresse IP** : IP ou hostname de l'hôte
  159. - **Nom d'utilisateur** : Utilisateur VMware (ex: `root`)
  160. - **Mot de passe** : Mot de passe VMware
  161. - **Type VMware** : ESXi ou vCenter (détection automatique si non spécifié)
  162.  
  163. #### Processus d'Ajout
  164.  
  165. 1. **Validation de la connexion**
  166. - Test de connexion via pyVmomi
  167. - Détection automatique du type (ESXi/vCenter)
  168. - Vérification des credentials
  169.  
  170. 2. **Enregistrement en base**
  171. - Création de l'asset avec type `vmware`
  172. - Stockage des credentials (hashés)
  173. - Association au site actuel
  174.  
  175. 3. **Configuration SSH (optionnel)**
  176. - Permet l'extinction via SSH en fallback
  177. - Utilise les mêmes credentials par défaut
  178.  
  179. ### Ajout d'une Machine Physique
  180.  
  181. **Page**: `/assets/add` → Sélectionner "Machine Physique"
  182.  
  183. #### Informations Requises
  184.  
  185. - **Label** : Nom d'affichage (ex: "Serveur-Production-01")
  186. - **Adresse IP** : IP de la machine
  187. - **Adresse MAC** : MAC pour Wake-on-LAN (requis pour allumage)
  188. - **Nom d'utilisateur SSH** : Utilisateur pour connexion SSH
  189. - **Mot de passe SSH** : Mot de passe SSH
  190. - **Port SSH** : Port SSH (défaut: 22)
  191.  
  192. #### Fonctionnalités
  193.  
  194. - **Allumage** : Wake-on-LAN (nécessite MAC)
  195. - **Extinction** : SSH avec commandes système (`shutdown`, `poweroff`, `halt`)
  196. - **Détection OS** : Détection automatique Linux/Windows
  197.  
  198. ### Ajout d'un Onduleur (UPS)
  199.  
  200. **Page**: `/assets/add` → Sélectionner "Onduleur (UPS)"
  201.  
  202. #### Informations de Base
  203.  
  204. - **Label** : Nom d'affichage (ex: "UPS-Salle-Serveurs")
  205. - **Adresse IP** : IP de l'UPS
  206. - **Port** : Port SNMP (défaut: 161)
  207. - **Community SNMP** : Community SNMP (défaut: `public`)
  208. - **Modèle** : Modèle de l'UPS (optionnel)
  209. - **Fabricant** : Fabricant de l'UPS (optionnel)
  210.  
  211. #### Configuration SNMP OID (Optionnel mais Recommandé)
  212.  
  213. Ces OIDs sont nécessaires pour la surveillance avancée et l'automatisation :
  214.  
  215. ##### 1. OID Fabricant (RFC1628)
  216.  
  217. - **OID** : `1.3.6.1.2.1.33.1.1.1.0` (par défaut)
  218. - **Usage** : Identification du fabricant de l'UPS
  219. - **Obligatoire** : Non, mais recommandé
  220.  
  221. ##### 2. OID Statut Secteur/Batterie
  222.  
  223. - **OID** : Variable selon le fabricant (ex: `1.3.6.1.2.1.33.1.4.4.0`)
  224. - **Valeurs "Sur Secteur"** : Liste des valeurs quand l'UPS est sur secteur (ex: `["3", "online"]`)
  225. - **Valeurs "Sur Batterie"** : Liste des valeurs quand l'UPS est sur batterie (ex: `["2", "battery"]`)
  226. - **Usage** : Déterminer si l'UPS est sur secteur ou batterie
  227. - **Obligatoire** : Pour la surveillance automatique
  228.  
  229. ##### 3. OID Charge Batterie
  230.  
  231. - **OID** : Variable selon le fabricant (ex: `1.3.6.1.2.1.33.1.2.4.0`)
  232. - **Usage** : Récupérer le pourcentage de charge de la batterie
  233. - **Obligatoire** : Pour les seuils de déclenchement
  234.  
  235. ##### 4. OID Temps Restant Batterie
  236.  
  237. - **OID** : Variable selon le fabricant (ex: `1.3.6.1.2.1.33.1.2.3.0`)
  238. - **Unité** : Secondes, Minutes, ou Dixièmes de minutes
  239. - **Usage** : Récupérer le temps restant sur batterie
  240. - **Obligatoire** : Pour les seuils de déclenchement
  241.  
  242. #### Exemple de Configuration UPS
  243.  
  244. ```
  245. Informations de Base:
  246. - Label: UPS-Salle-Serveurs
  247. - IP: 192.168.1.100
  248. - Port: 161
  249. - Community: public
  250. - Modèle: Smart-UPS 3000
  251. - Fabricant: APC
  252.  
  253. Configuration SNMP:
  254. - OID Fabricant: 1.3.6.1.2.1.33.1.1.1.0
  255. - OID Statut: 1.3.6.1.2.1.33.1.4.4.0
  256. - Sur Secteur: ["3", "online"]
  257. - Sur Batterie: ["2", "battery"]
  258. - OID Charge: 1.3.6.1.2.1.33.1.2.4.0
  259. - OID Temps Restant: 1.3.6.1.2.1.33.1.2.3.0
  260. - Unité: seconds
  261. ```
  262.  
  263. ---
  264.  
  265. ## Découverte des Machines Virtuelles
  266.  
  267. ### Accès à la Découverte
  268.  
  269. **Page**: `/discovery` ou `/vm-discovery`
  270.  
  271. ### Processus de Découverte
  272.  
  273. 1. **Sélection de l'hôte VMware**
  274. - Liste déroulante des hôtes ESXi/vCenter ajoutés
  275. - Affichage du label et de l'IP
  276.  
  277. 2. **Lancement de la découverte**
  278. - Connexion à l'hôte via pyVmomi
  279. - Parcours de l'inventaire VMware
  280. - Récupération des informations de chaque VM :
  281. - Nom
  282. - ID VMware (`vm_id`)
  283. - État d'alimentation (`power_state`)
  284. - Informations VMware Tools
  285. - OS invité (si disponible)
  286.  
  287. 3. **Affichage des résultats**
  288. - Liste des VMs découvertes
  289. - Indication des VMs déjà enregistrées
  290. - Bouton pour enregistrer les nouvelles VMs
  291.  
  292. 4. **Enregistrement**
  293. - Sélection des VMs à enregistrer
  294. - Création des enregistrements en base de données
  295. - Association avec l'hôte VMware parent
  296.  
  297. ### Informations Récupérées
  298.  
  299. - **Nom de la VM** : Nom dans vSphere
  300. - **ID VMware** : Identifiant unique VMware (`vm_id`)
  301. - **État d'alimentation** : `poweredOn`, `poweredOff`, `suspended`
  302. - **VMware Tools** : Statut et version des outils
  303. - **OS Invité** : Système d'exploitation détecté
  304.  
  305. ---
  306.  
  307. ## Configuration UPS et SNMP
  308.  
  309. ### Page de Configuration UPS
  310.  
  311. **Page**: `/ups-settings`
  312.  
  313. Cette page permet de configurer la surveillance et l'automatisation des UPS.
  314.  
  315. ### Section 1: Configuration SNMP par UPS
  316.  
  317. Pour chaque UPS ajouté, vous pouvez configurer :
  318.  
  319. #### Paramètres SNMP de Base
  320.  
  321. - **Hôte SNMP** : IP de l'UPS (pré-rempli depuis l'asset)
  322. - **Port SNMP** : Port SNMP (défaut: 161)
  323. - **Community** : Community SNMP (défaut: `public`)
  324. - **Version SNMP** : v1, v2c, ou v3 (défaut: v2c)
  325. - **Timeout** : Timeout en secondes (défaut: 5)
  326. - **Tentatives** : Nombre de tentatives (défaut: 3)
  327.  
  328. #### Configuration des OIDs
  329.  
  330. - **OID Fabricant** : OID pour identifier le fabricant
  331. - **OID Statut Secteur/Batterie** : OID pour déterminer l'alimentation
  332. - **OID Charge Batterie** : OID pour la charge en pourcentage
  333. - **OID Temps Restant** : OID pour le temps restant
  334.  
  335. #### Test des OIDs
  336.  
  337. - Bouton "Tester OID" pour vérifier chaque OID individuellement
  338. - Affichage de la valeur retournée
  339. - Validation de la configuration
  340.  
  341. ### Section 2: Configuration des Seuils et Polling
  342.  
  343. #### Seuil de Batterie pour Déclenchement
  344.  
  345. - **Seuil (%)** : Niveau de batterie en dessous duquel déclencher l'arrêt
  346. - **Recommandation** : 20-30%
  347.  
  348. #### Conditions d'Exécution du Scénario d'Extinction (SNMP)
  349.  
  350. Ces conditions sont évaluées lorsque l'UPS est sur batterie :
  351.  
  352. - **Temps restant minimum** : Temps restant en secondes (ex: 300 = 5 minutes)
  353. - Le scénario se déclenche si le temps restant ≤ cette valeur
  354. - **Charge batterie minimum** : Charge en pourcentage (ex: 20%)
  355. - Le scénario se déclenche si la charge ≤ cette valeur
  356.  
  357. **Note** : Si ces champs sont vides, seule la condition "sur batterie" sera utilisée.
  358.  
  359. #### Cadences de Polling
  360.  
  361. - **Sur secteur** : Fréquence de vérification quand l'alimentation secteur est présente
  362. - **Recommandation** : 60-120 secondes
  363. - **Sur batterie** : Fréquence de vérification quand l'UPS est sur batterie
  364. - **Recommandation** : 10-30 secondes
  365.  
  366. #### Temporisation de Grâce
  367.  
  368. - **Délai avant arrêt** : Délai d'attente après avoir atteint les seuils avant de déclencher l'arrêt
  369. - **Usage** : Évite les déclenchements intempestifs en cas de micro-coupures
  370. - **Recommandation** : 30-120 secondes
  371.  
  372. ### Exemple de Configuration
  373.  
  374. ```
  375. Seuil de Batterie: 25%
  376.  
  377. Conditions d'Exécution:
  378. - Temps restant minimum: 300 secondes (5 minutes)
  379. - Charge batterie minimum: 20%
  380.  
  381. Polling:
  382. - Sur secteur: 60 secondes
  383. - Sur batterie: 15 secondes
  384.  
  385. Temporisation de grâce: 60 secondes
  386. ```
  387.  
  388. ---
  389.  
  390. ## Création et Gestion des Scénarios
  391.  
  392. ### Vue d'ensemble
  393.  
  394. Les scénarios permettent d'orchestrer l'allumage ou l'extinction de plusieurs machines dans un ordre défini.
  395.  
  396. ### Types de Scénarios
  397.  
  398. 1. **Scénario d'Allumage** (`START`) : Allume les machines dans l'ordre défini
  399. 2. **Scénario d'Extinction** (`STOP`) : Éteint les machines dans l'ordre défini
  400.  
  401. ### Page de Gestion
  402.  
  403. **Page**: `/scenarios`
  404.  
  405. ### Création d'un Scénario
  406.  
  407. #### 1. Informations de Base
  408.  
  409. - **Nom** : Nom du scénario (ex: "Extinction Datacenter")
  410. - **Type** : Allumage ou Extinction
  411. - **Description** : Description optionnelle
  412.  
  413. #### 2. Construction de la Playlist
  414.  
  415. La playlist définit l'ordre d'exécution des actions.
  416.  
  417. ##### Ajout de Machines
  418.  
  419. 1. **Sélection du type de machine**
  420. - Machine physique
  421. - ESXi/vCenter
  422. - VM
  423.  
  424. 2. **Sélection de la machine**
  425. - Liste déroulante des machines disponibles
  426. - Filtrage par type
  427.  
  428. 3. **Ajout à la playlist**
  429. - La machine est ajoutée à la fin de la playlist
  430. - Affichage avec son type et son label
  431.  
  432. ##### Ajout de Délais
  433.  
  434. - **Bouton** : Icône horloge (⏰) dans la playlist
  435. - **Configuration** :
  436. - Durée en secondes (ex: 30, 60, 120)
  437. - Description optionnelle
  438. - **Usage** : Attendre entre deux actions (ex: laisser le temps à une machine de démarrer avant d'allumer la suivante)
  439.  
  440. ##### Réorganisation
  441.  
  442. - **Drag & Drop** : Réorganiser les éléments de la playlist par glisser-déposer
  443. - **Suppression** : Bouton de suppression pour chaque élément
  444.  
  445. #### 3. Sauvegarde
  446.  
  447. - **Bouton "Enregistrer"** : Sauvegarde le scénario et ses étapes
  448. - **Validation** : Vérification qu'au moins une étape est définie
  449.  
  450. ### Exemple de Scénario d'Extinction
  451.  
  452. ```
  453. Nom: Extinction Datacenter Principal
  454. Type: Extinction
  455.  
  456. Playlist:
  457. 1. VM "Base de données" → Éteindre
  458. 2. Délai de 30 secondes
  459. 3. VM "Serveur Web" → Éteindre
  460. 4. Délai de 30 secondes
  461. 5. ESXi "ESXi-Production-01" → Éteindre
  462. 6. Délai de 60 secondes
  463. 7. Machine Physique "Serveur-Backup" → Éteindre
  464. ```
  465.  
  466. ### Exécution d'un Scénario
  467.  
  468. #### Exécution Manuelle
  469.  
  470. 1. **Sélection du scénario** : Choisir le scénario dans la liste
  471. 2. **Bouton "Exécuter"** : Lancer l'exécution
  472. 3. **Suivi en temps réel** :
  473. - Affichage de l'état de chaque machine
  474. - Messages de progression
  475. - Indication des succès/échecs
  476.  
  477. #### Exécution Automatique
  478.  
  479. Les scénarios peuvent être exécutés automatiquement via :
  480. - **Planification** : Tâches planifiées (voir section suivante)
  481. - **Surveillance UPS** : Déclenchement automatique selon les conditions UPS
  482.  
  483. ---
  484.  
  485. ## Planification de Tâches
  486.  
  487. ### Vue d'ensemble
  488.  
  489. Les tâches planifiées permettent d'exécuter automatiquement des scénarios à des dates/heures précises.
  490.  
  491. ### Page de Gestion
  492.  
  493. **Page**: `/scenarios` → Onglet "Planification"
  494.  
  495. ### Création d'une Tâche Planifiée
  496.  
  497. #### Informations Requises
  498.  
  499. - **Nom** : Nom de la tâche (ex: "Extinction Nocturne")
  500. - **Type** : Allumage ou Extinction
  501. - **Scénario** : Scénario à exécuter (optionnel, utilise le dernier scénario du type si non spécifié)
  502. - **Date et Heure** : Date et heure d'exécution
  503.  
  504. #### Exemple
  505.  
  506. ```
  507. Nom: Extinction Nocturne
  508. Type: Extinction
  509. Scénario: Extinction Datacenter Principal
  510. Date: 2025-12-01
  511. Heure: 22:00
  512. ```
  513.  
  514. ### Gestion des Tâches
  515.  
  516. #### Statuts
  517.  
  518. - **PENDING** : En attente d'exécution
  519. - **EXECUTED** : Exécutée avec succès
  520. - **FAILED** : Échec d'exécution
  521. - **CANCELLED** : Annulée par l'utilisateur
  522.  
  523. #### Actions
  524.  
  525. - **Modifier** : Modifier la date/heure ou le scénario
  526. - **Annuler** : Annuler une tâche en attente
  527. - **Voir les détails** : Afficher les informations complètes
  528.  
  529. ### Exécution Automatique
  530.  
  531. Le service de planification (`scheduler_service`) :
  532.  
  533. - **Vérifie toutes les minutes** les tâches en attente
  534. - **Exécute automatiquement** les tâches dont l'heure est arrivée
  535. - **Fonctionne sans session utilisateur** : Les scénarios s'exécutent même si personne n'est connecté
  536. - **Enregistre les logs** : Toutes les actions sont enregistrées avec l'ID de l'utilisateur créateur
  537.  
  538. ### Historique
  539.  
  540. - **Date de création** : Quand la tâche a été créée
  541. - **Date d'exécution** : Quand la tâche a été exécutée
  542. - **Date d'annulation** : Si annulée, quand et par qui
  543. - **Messages d'erreur** : En cas d'échec, le message d'erreur est enregistré
  544.  
  545. ---
  546.  
  547. ## Surveillance Automatique UPS
  548.  
  549. ### Vue d'ensemble
  550.  
  551. Le service de surveillance UPS (`ups_monitor_service`) surveille en continu les UPS configurés et déclenche automatiquement le scénario d'extinction lorsque les conditions sont remplies.
  552.  
  553. ### Fonctionnement
  554.  
  555. #### 1. Surveillance Continue
  556.  
  557. - **Polling périodique** : Vérification de l'état des UPS selon les cadences configurées
  558. - **Sur secteur** : Polling moins fréquent (ex: 60 secondes)
  559. - **Sur batterie** : Polling plus fréquent (ex: 15 secondes)
  560.  
  561. #### 2. Évaluation des Conditions
  562.  
  563. Pour chaque UPS, le service vérifie :
  564.  
  565. ##### Condition 1: Sur Batterie
  566.  
  567. - **OID Statut** : Vérifie si l'UPS est sur batterie
  568. - **Obligatoire** : Oui, le scénario ne se déclenche que si l'UPS est sur batterie
  569.  
  570. ##### Condition 2: Temps Restant (si configuré)
  571.  
  572. - **OID Temps Restant** : Récupère le temps restant sur batterie
  573. - **Comparaison** : Temps restant ≤ Seuil configuré ?
  574. - **Obligatoire** : Non, mais recommandé
  575.  
  576. ##### Condition 3: Charge Batterie (si configurée)
  577.  
  578. - **OID Charge** : Récupère le pourcentage de charge
  579. - **Comparaison** : Charge ≤ Seuil configuré ?
  580. - **Obligatoire** : Non, mais recommandé
  581.  
  582. #### 3. Temporisation de Grâce
  583.  
  584. - **Démarrage** : Quand toutes les conditions sont remplies, démarre un compte à rebours
  585. - **Durée** : Durée configurée dans les paramètres UPS (ex: 60 secondes)
  586. - **Objectif** : Éviter les déclenchements intempestifs en cas de micro-coupures
  587.  
  588. #### 4. Déclenchement du Scénario
  589.  
  590. - **Scénario d'extinction** : Exécute le scénario d'extinction du site
  591. - **Utilisateur système** : Exécuté par l'utilisateur administrateur système
  592. - **Logs** : Toutes les actions sont enregistrées
  593.  
  594. ### Exemple de Scénario
  595.  
  596. ```
  597. Configuration:
  598. - Seuil batterie: 25%
  599. - Temps restant minimum: 300 secondes
  600. - Charge minimum: 20%
  601. - Temporisation de grâce: 60 secondes
  602.  
  603. Séquence d'événements:
  604. 1. UPS passe sur batterie → Polling passe à 15 secondes
  605. 2. Temps restant = 250 secondes (< 300) → Condition remplie
  606. 3. Charge = 18% (< 20%) → Condition remplie
  607. 4. Démarrage de la temporisation de grâce (60 secondes)
  608. 5. Après 60 secondes, si conditions toujours remplies → Déclenchement du scénario
  609. 6. Exécution du scénario d'extinction
  610. ```
  611.  
  612. ### Cooldown
  613.  
  614. - **Durée** : 5 minutes après un déclenchement
  615. - **Objectif** : Éviter les déclenchements multiples
  616. - **Réinitialisation** : Si l'UPS repasse sur secteur, le cooldown est réinitialisé
  617.  
  618. ---
  619.  
  620. ## Interface Utilisateur
  621.  
  622. ### Pages Principales
  623.  
  624. #### 1. Dashboard (`/`)
  625.  
  626. - **Vue d'ensemble** : Statistiques globales
  627. - **Machines Récentes** : Liste des machines avec état et actions rapides
  628. - **Activité des Opérations** : Activités récentes de l'utilisateur actuel
  629. - **Activités Récentes** : Activités récentes de tous les assets
  630.  
  631. #### 2. Assets (`/assets`)
  632.  
  633. - **Liste des assets** : Tous les assets (ESXi, machines physiques, UPS)
  634. - **Filtres** : Par type, statut, site
  635. - **Actions rapides** : Allumage/extinction directement depuis la liste
  636. - **Édition** : Modification des assets
  637.  
  638. #### 3. Découverte (`/discovery`)
  639.  
  640. - **Découverte VMs** : Découverte des machines virtuelles sur les hôtes VMware
  641. - **Exploration** : Exploration détaillée d'un hôte
  642.  
  643. #### 4. Scénarios (`/scenarios`)
  644.  
  645. - **Gestion des scénarios** : Création, modification, suppression
  646. - **Exécution** : Exécution manuelle des scénarios
  647. - **Planification** : Gestion des tâches planifiées
  648.  
  649. #### 5. Paramètres UPS (`/ups-settings`)
  650.  
  651. - **Configuration SNMP** : Configuration des OIDs pour chaque UPS
  652. - **Seuils et Polling** : Configuration des seuils et cadences
  653.  
  654. #### 6. Journal (`/logs`)
  655.  
  656. - **Journal des opérations** : Tous les logs d'actions
  657. - **Filtres** : Par catégorie, utilisateur, asset, date
  658. - **Détails** : Affichage des détails complets de chaque action
  659.  
  660. #### 7. Paramètres (`/settings`)
  661.  
  662. - **Gestion des utilisateurs** : Création, modification, suppression
  663. - **Gestion du site** : Modification des informations du site
  664.  
  665. ### Thème et Couleurs
  666.  
  667. #### Thème Sombre
  668.  
  669. - **Fond principal** : Noir (#1a1a1a)
  670. - **Cartes** : Gris foncé (#222222)
  671. - **Texte** : Blanc pour lisibilité
  672.  
  673. #### Couleurs Thématiques
  674.  
  675. - **VM** : Bleu/Violet (gradient)
  676. - **ESXi** : Orange (gradient)
  677. - **vCenter** : Rouge (gradient)
  678. - **Machine Physique** : Vert (gradient)
  679. - **UPS** : Jaune/Orange (gradient)
  680.  
  681. #### Actions Sémantiques
  682.  
  683. - **Allumage** : Vert (#10b981)
  684. - **Extinction** : Rouge (#ef4444)
  685. - **Redémarrage** : Orange (#f59e0b)
  686.  
  687. ---
  688.  
  689. ## Services en Arrière-plan
  690.  
  691. ### 1. Service de Surveillance des Machines (`status_service`)
  692.  
  693. - **Fonction** : Surveille l'état (online/offline) des machines
  694. - **Méthode** : Ping périodique
  695. - **Fréquence** : Configurable (défaut: 30 secondes)
  696. - **Mise à jour** : Mise à jour en temps réel via WebSocket
  697.  
  698. ### 2. Service de Planification (`scheduler_service`)
  699.  
  700. - **Fonction** : Exécute automatiquement les tâches planifiées
  701. - **Vérification** : Toutes les minutes
  702. - **Exécution** : Sans session utilisateur requise
  703. - **Logs** : Enregistrement de toutes les exécutions
  704.  
  705. ### 3. Service de Surveillance UPS (`ups_monitor_service`)
  706.  
  707. - **Fonction** : Surveille les UPS et déclenche les scénarios d'extinction
  708. - **Polling** : Selon les cadences configurées
  709. - **Conditions** : Évaluation des seuils (batterie, temps, charge)
  710. - **Déclenchement** : Automatique selon les conditions
  711.  
  712. ### Démarrage des Services
  713.  
  714. Les services démarrent automatiquement avec l'application :
  715.  
  716. ```python
  717. @app.on_event("startup")
  718. async def startup_event():
  719. asyncio.create_task(start_status_service())
  720. asyncio.create_task(start_scheduler_service())
  721. asyncio.create_task(start_ups_monitor_service())
  722. ```
  723.  
  724. ---
  725.  
  726. ## Dépannage
  727.  
  728. ### Problèmes Courants
  729.  
  730. #### 1. Service ne démarre pas
  731.  
  732. ```bash
  733. # Vérifier les logs
  734. sudo journalctl -u orchestrator -f
  735.  
  736. # Vérifier le statut
  737. sudo systemctl status orchestrator
  738.  
  739. # Vérifier la configuration
  740. cat /opt/Orchestrator/.env
  741. ```
  742.  
  743. #### 2. Erreur de connexion à la base de données
  744.  
  745. ```bash
  746. # Vérifier que PostgreSQL est démarré
  747. sudo systemctl status postgresql
  748.  
  749. # Tester la connexion
  750. psql -h localhost -U orchestrator_user -d orchestrator_db
  751.  
  752. # Vérifier les credentials dans .env
  753. cat /opt/Orchestrator/.env | grep DATABASE_URL
  754. ```
  755.  
  756. #### 3. Erreur de connexion VMware
  757.  
  758. - **Vérifier les credentials** : Nom d'utilisateur et mot de passe corrects
  759. - **Vérifier la connectivité réseau** : Ping vers l'hôte VMware
  760. - **Vérifier le port** : Port 443 accessible
  761. - **Vérifier les certificats SSL** : L'application ignore les certificats SSL par défaut
  762.  
  763. #### 4. Erreur SNMP pour UPS
  764.  
  765. - **Vérifier la communauté SNMP** : Généralement `public` par défaut
  766. - **Vérifier les OIDs** : Utiliser le bouton "Tester OID" pour valider
  767. - **Vérifier la connectivité** : Ping vers l'UPS
  768. - **Vérifier le port** : Port 161 par défaut
  769.  
  770. #### 5. Scénario ne s'exécute pas
  771.  
  772. - **Vérifier les logs** : Page `/logs` pour voir les erreurs
  773. - **Vérifier les credentials** : Machines physiques nécessitent SSH
  774. - **Vérifier l'état des machines** : Machines déjà allumées/éteintes peuvent être ignorées
  775. - **Vérifier les permissions** : Utilisateur VMware avec permissions suffisantes
  776.  
  777. #### 6. Tâche planifiée non exécutée
  778.  
  779. - **Vérifier le statut** : Page `/scenarios` → Onglet "Planification"
  780. - **Vérifier les logs du service** : `sudo journalctl -u orchestrator | grep scheduler`
  781. - **Vérifier la date/heure** : Date/heure correcte et dans le futur
  782. - **Vérifier le scénario** : Scénario existe et a des étapes
  783.  
  784. #### 7. Surveillance UPS ne fonctionne pas
  785.  
  786. - **Vérifier la configuration SNMP** : Page `/ups-settings`
  787. - **Tester les OIDs** : Utiliser le bouton "Tester OID"
  788. - **Vérifier les seuils** : Seuils configurés correctement
  789. - **Vérifier les logs** : `sudo journalctl -u orchestrator | grep ups_monitor`
  790.  
  791. ### Logs
  792.  
  793. #### Logs du Service
  794.  
  795. ```bash
  796. # Logs en temps réel
  797. sudo journalctl -u orchestrator -f
  798.  
  799. # Logs des dernières 24 heures
  800. sudo journalctl -u orchestrator --since "24 hours ago"
  801.  
  802. # Logs avec filtrage
  803. sudo journalctl -u orchestrator | grep "ERROR"
  804. ```
  805.  
  806. #### Logs dans l'Interface
  807.  
  808. - **Page `/logs`** : Journal des opérations avec filtres
  809. - **Catégories** : Machines, explorations, erreurs, scénarios, actions
  810. - **Détails** : Cliquer sur l'icône "œil" pour voir les détails complets
  811.  
  812. ### Réinitialisation
  813.  
  814. #### Réinitialisation du Mot de Passe Admin
  815.  
  816. ```bash
  817. cd /opt/Orchestrator
  818. ./reset.sh admin NouveauMotDePasse123!
  819. ```
  820.  
  821. #### Réinitialisation Complète
  822.  
  823. ```bash
  824. # Attention : Supprime toutes les données
  825. cd /opt/Orchestrator
  826. python3 clear_database.py
  827. ```
  828.  
  829. ---
  830.  
  831. ## Conclusion
  832.  
  833. Cette documentation couvre l'ensemble du processus de configuration et d'utilisation de Sequencer, depuis l'installation initiale jusqu'à l'automatisation complète de l'infrastructure.
  834.  
  835. Pour toute question ou problème, consultez les logs du service et la page `/logs` dans l'interface utilisateur.
  836.  
  837. ---
  838.  
  839. **© 2026 Sequencer. Version 1.0.0 by judd**
  840.  
  841.  
Advertisement
Add Comment
Please, Sign In to add comment