[Plugin Tiers] Plugin VMWARE

Bonjour @andrec,

Merci pour ton retour positif.

Concernant la bascule d’un ESXI à l’autre, peux-tu me confirmer ce comportement :

Syncho sur ESXi1, la VM TOTO apparait.
Synchro sur ESXi2, la VM TOTO disparait de ESXi1 et apparait sur ESXi2.

C’est bien ce que tu décris ?

Si oui, est-ce juste un problème à l’affichage sur la page du plugin ? ou bien globale, et donc disparition d’un ESXi au profit du dernier ESXi qui a été interrogé ?

Je vais regarder afin de voir pour modifier le nom logique qui ne semble donc pas unique et pose ce problème.

Hello @bartounet,

Tu n’as pas répondu à ma réponse concernant le rendu graphique pour que ça soit plus parlant sur la tuile pour créer un snapshot. est-ce que ça peut convenir ?

Concernant l’état de la VM suite à des actions dans un scénario, tu peux simplement faire un refresh sur la VM.

C’est ce que je fais par exemple sur le scénario suivant, expliquez ici :

Est-ce que tu as essayé ce refresh en scénario et tu as un souci? ou tu n’avais pas vu passer cette commande ?

Mercoi pour tes retours

@TaG, tu penses à mon problème de logicalid pour mes disques durs ? (signalé plus haut) merci.

Edit : Je pense que ça pourrait être traité comme la solution donnée juste en dessous.

Bonjour,

C’est exactement ça, ça semble global:

Synchro sur ESXi1: la VM TOTO apparaît, je passe la VM TOTO en visible sur le Dashboard Jeedom, l’état remonte bien.
Synchro sur ESXi2: la VM TOTO disparaît de ESXi1 et apparaît sur ESXi2, sur le Dashboard la VM TOTO est toujours visible, et c’est maintenant l’état de la VM TOTO sur ESXi2 qui est affiché.

En effet le soucis semble bien venir de là, une idée serait peut-être d’ajouter le nom de l’ESXi au nom logique de la VM, par exemple « ESXi1_TOTO ».

Merci,
André

Hello.
Je ne souhaite pas passer par un refresh ou un scénario.

J’ai créer un virtuel pour démarrer et éteindre une VM avec son état associé.

Le but est de pouvoir démarrer éteindre ma VM via DOmowidget sur Android.
Donc il faut que le bouton Toogle puisse remonter l’état instantanément ou au pire à la minute.

Hello @bartounet,

pour le rendu graphique de la tuile, j’ai poussé en beta et dans la documentation/changelog pour que ça soit plus parlant. Il y a une modification dans la perso avancée de jeedom à mettre en oeuvre.

La syncho market sera faite tout à l’heure.

Concernant domowidget, je ne l’utilise pas. Mais je comprends ta demande. C’est assez spécifique pour le coup et le bouton toggle qui remonte l’info, je dirais que c’est plutôt à toi de gérer ça de ton coté. Si je met ça en oeuvre, le cron1, ça va charger de manière inutile jeedom et l’esxi qui est en face.
Il faut être sur la VM en question uniquement et pas interroger chaque VMs suite à la modification d’une seule.
Comment fonctionne domowidget ? tu ne peux pas dire : si j’allume/éteint la VM, dans X secondes, lance un refresh ?

@andrec, j’ai modifié le code, mais ça implique un bigbang car ça recrée complétement les VMs chez tous les utilisateurs.
Mais pour le coup, c’est je pense un mal nécessaire vu la situation. Je n’ai pas anticipé ce besoin, et il n’a pas été détecté avant la première release.

Ca duplique donc chaque VM sur chaque hote ESXi. Mais on va devoir y passer.

Afin d’identifier quelle VM est à conserver, il suffit de cliquer sur la VM, puis de cliquer sur le bouton Configuration avancée et enfin de regarder si l’ID logique comporte bien un -NomDeVotreESXi

image

Si oui, vous savez qu’il faut conserver celle là.
Si vous avez des scénarios qui se servent de ces VMs, vous pouvez remplacer les commandes par celle de la nouvelle VM, cf la doc jeedom. Comme ça vos commandes sont remplacées partout ou elles sont utilisées.

Je vais pousser en beta tout à l’heure également.

@Flobul

peux-tu me donner le résultat du log du plugin en debug s’il te plait ? sur la version actuelle.
Quand tu lance de manière forcée le cron 5 des plugins, ou que tu attends 5 min.

Je veux voir si mon idée peut convenir pour la partie nommage, mais il me faut ton résultat en debug.

Concernant smartctl, ça n’est pas installé par défaut et je ne veux pas l’ajouter en prérequis.
Et comme déjà évoqué, si on estime qu’il y un écart entre la valeur réelle et celle récupérée via la commande esxcli, on peut dans jeedom ajuster le résultat ici :

Et sans correction :

Avec ton log, je regarde comment renommer plus proprement pour éviter ta problématique

Voilà le log.

Une solution pour le LogicId, c’st de garder le numéro de série qui est en fin des « ____ » du nom du modèle. Non ?

[2020-05-23 23:50:03][INFO] : ========================================================
[2020-05-23 23:50:03][INFO] : ================ Début du log - Cron 5 =================
[2020-05-23 23:50:03][INFO] : ========================================================
[2020-05-23 23:50:03][DEBUG] : Func cron 5 FOREACH on est sur l'équipement : DSM6
[2020-05-23 23:50:03][DEBUG] : Func cron 5 FOREACH on est sur l'équipement : DSM6
[2020-05-23 23:50:03][DEBUG] : Func cron 5 FOREACH on est sur l'équipement : VMWARE ESXi
[2020-05-23 23:50:03][DEBUG] : Func cron 5 on a trouvé un ESXi : VMWARE ESXi
[2020-05-23 23:50:03][DEBUG] : Login utilisé : root - Ip de l'ESXi : 192.168.0.13 - Port SSH de l'ESXi : 22
[2020-05-23 23:50:03][INFO] : ESXi joignable
[2020-05-23 23:50:03][INFO] : Connexion OK à l'ESXi
[2020-05-23 23:50:03][DEBUG] : Apres la connexion
[2020-05-23 23:50:03][DEBUG] : Func cron 5 FOREACH Recherche VM - Equipement : DSM6
[2020-05-23 23:50:03][DEBUG] : On appelle la commande qui cherche l'ID de la vm à mettre à jour car Active
[2020-05-23 23:50:03][DEBUG] : Contenu de la variable vmIDToUpdate : 3
[2020-05-23 23:50:04][DEBUG] : contenu de la variable overallCpuUsage : 245
[2020-05-23 23:50:04][DEBUG] : contenu de la variable hostMemoryUsage : 6.207
[2020-05-23 23:50:04][DEBUG] : Func cron 5 FOREACH Recherche VM - Equipement : DSM6
[2020-05-23 23:50:04][DEBUG] : On appelle la commande qui cherche l'ID de la vm à mettre à jour car Active
[2020-05-23 23:50:04][DEBUG] : Contenu de la variable vmIDToUpdate : 3
[2020-05-23 23:50:05][DEBUG] : contenu de la variable overallCpuUsage : 245
[2020-05-23 23:50:05][DEBUG] : contenu de la variable hostMemoryUsage : 6.207
[2020-05-23 23:50:05][DEBUG] : Func cron 5 FOREACH Recherche VM - Equipement : VMWARE ESXi
[2020-05-23 23:50:05][DEBUG] : contenu de la variable overallCpuUsage de l\ESXI : 291
[2020-05-23 23:50:06][DEBUG] : contenu de la variable overallMemoryUsage de l\ESXI : 7.657
[2020-05-23 23:50:06][DEBUG] : contenu de la variable disk : t10.ATA_____WDC_WD100EZAZ2D11TDBA0___________________2YK4R05D____________
[2020-05-23 23:50:06][DEBUG] : contenu de la variable diskName[1] : WDC_WD100EZAZ2D11TDBA0
[2020-05-23 23:50:06][INFO] : Création/Maj de la commande Température disque WDC_WD100EZAZ2D11TDBA0 dans l'équipement ESXi
[2020-05-23 23:50:06][DEBUG] : contenu de la variable diskTemperatureArray[1] qui est la température en cours :
[2020-05-23 23:50:06][DEBUG] : contenu de la variable disk : t10.ATA_____Hitachi_HDS5C4040ALE630_______________________PL1321LAG4PZMH
[2020-05-23 23:50:06][DEBUG] : contenu de la variable diskName[1] : Hitachi_HDS5C4040ALE630
[2020-05-23 23:50:06][INFO] : Création/Maj de la commande Température disque Hitachi_HDS5C4040ALE630 dans l'équipement ESXi
[2020-05-23 23:50:08][DEBUG] : contenu de la variable diskTemperatureArray[1] qui est la température en cours : 31
[2020-05-23 23:50:08][DEBUG] : contenu de la variable disk : t10.ATA_____ST4000DM0002D1F2168__________________________________Z3015TTW
[2020-05-23 23:50:08][DEBUG] : contenu de la variable diskName[1] : ST4000DM0002D1F2168
[2020-05-23 23:50:08][INFO] : Création/Maj de la commande Température disque ST4000DM0002D1F2168 dans l'équipement ESXi
[2020-05-23 23:50:08][DEBUG] : contenu de la variable diskTemperatureArray[1] qui est la température en cours : 31
[2020-05-23 23:50:08][DEBUG] : contenu de la variable disk : t10.ATA_____WDC_WD100EZAZ2D11TDBA0___________________JEKEM3AZ____________
[2020-05-23 23:50:08][DEBUG] : contenu de la variable diskName[1] : WDC_WD100EZAZ2D11TDBA0
[2020-05-23 23:50:08][INFO] : Création/Maj de la commande Température disque WDC_WD100EZAZ2D11TDBA0 dans l'équipement ESXi
[2020-05-23 23:50:09][DEBUG] : contenu de la variable diskTemperatureArray[1] qui est la température en cours : 31
[2020-05-23 23:50:09][DEBUG] : contenu de la variable disk : t10.ATA_____ST8000VN00222D2EL112_________________________________ZA15W523
[2020-05-23 23:50:09][DEBUG] : contenu de la variable diskName[1] : ST8000VN00222D2EL112
[2020-05-23 23:50:09][INFO] : Création/Maj de la commande Température disque ST8000VN00222D2EL112 dans l'équipement ESXi
[2020-05-23 23:50:09][DEBUG] : contenu de la variable diskTemperatureArray[1] qui est la température en cours : 38
[2020-05-23 23:50:09][DEBUG] : contenu de la variable disk : t10.ATA_____ST8000VN00222D2EL112_________________________________ZA17C7TE
[2020-05-23 23:50:09][DEBUG] : contenu de la variable diskName[1] : ST8000VN00222D2EL112
[2020-05-23 23:50:09][INFO] : Création/Maj de la commande Température disque ST8000VN00222D2EL112 dans l'équipement ESXi
[2020-05-23 23:50:09][DEBUG] : contenu de la variable diskTemperatureArray[1] qui est la température en cours : 43
[2020-05-23 23:50:09][DEBUG] : contenu de la variable disk : t10.ATA_____ST8000VN00222D2EL112_________________________________ZA19D2JZ
[2020-05-23 23:50:09][DEBUG] : contenu de la variable diskName[1] : ST8000VN00222D2EL112
[2020-05-23 23:50:09][INFO] : Création/Maj de la commande Température disque ST8000VN00222D2EL112 dans l'équipement ESXi
[2020-05-23 23:50:10][DEBUG] : contenu de la variable disk : t10.ATA_____Samsung_SSD_840_PRO_Series______________S1ATNEAD504320R_____
[2020-05-23 23:50:10][DEBUG] : contenu de la variable diskName[1] : Samsung_SSD_840_PRO_Series
[2020-05-23 23:50:10][INFO] : Création/Maj de la commande Température disque Samsung_SSD_840_PRO_Series dans l'équipement ESXi
[2020-05-23 23:50:10][DEBUG] : contenu de la variable diskTemperatureArray[1] qui est la température en cours : 67
[2020-05-23 23:50:10][DEBUG] : contenu de la variable disk : t10.ATA_____ST4000DM0002D1F2168__________________________________W300FJJ5
[2020-05-23 23:50:10][DEBUG] : contenu de la variable diskName[1] : ST4000DM0002D1F2168
[2020-05-23 23:50:10][INFO] : Création/Maj de la commande Température disque ST4000DM0002D1F2168 dans l'équipement ESXi
[2020-05-23 23:50:11][DEBUG] : contenu de la variable diskTemperatureArray[1] qui est la température en cours : 29
[2020-05-23 23:50:11][DEBUG] : contenu de la variable loadAverage1Min de l'ESXI : 0.03
[2020-05-23 23:50:12][DEBUG] : contenu de la variable loadAverage5Min de l'ESXI : 0.03
[2020-05-23 23:50:12][DEBUG] : contenu de la variable loadAverage15Min de l'ESXI : 0.03
[2020-05-23 23:50:12][INFO] : Fin de la fonction Cron 5

Je comprends pour smartctl.

J’ai poussé les modifications évoquées plus haut @bartounet et @andrec.

Preneur de vos retours. mais attention au big bang sur la version beta.

@Flobul, oui c’est mon idée, mais je vais rendre ça plus jolie que des ________________ partout :).

Je m’en occupe de suite. je reviens dès que j’ai pu modifier

C’est modifié et poussé en beta @Flobul

Pour rappel la dernière BETA apporte de grosses modifications, prévoir un peu de temps si vous avez beaucoup de scénarios/dashboard ou autre qui appellent plusieurs VMs.

Merci d’avance pour vos retours.

C’est fonctionnel. Par contre, j’ai dû supprimer les équipements et le recréer puis attendre le cron5.
En sauvegardant, faisant la synchro et attendant le cron5, il y avait bien les nouveaux calculs dans le debug, mais les nouvelles commandes n’étaient pas créées.
Du coup, les commandes de température s’appellent NEW Température disque N.

Merci pour les motifs. Je vais pouvoir appliquer un scénario quand un de mes disques saute :slight_smile:

Autre petit retour.
A l’égal des VM, est-il possible d’implémenter des boutons action pour arrêter et redémarrer ESXi et mettre/sortir en mode maintenance ?(Arrêter et redémarrer l’hôte).

@Flobul pour les nouvelles commandes, j’avais testé et j’ai bien eu la nouvelle commande pour mon disque, puis j’ai supprimé l’ancien commande.

On verra les autres retours.

Concernant la partie arrêt / reboot ESXi et mise en maintenance et sortie de maintenance, je regarde ça dès que possible

1 « J'aime »

@Flobul @losnono,

Dans la dernière beta, il y a ceci d’ajouté :

25/05/2020

Ajout sur l’ESXi des commandes actions suivantes :
Quitter le mode maintenance
Entrer en mode maintenance
Reboot ESXi (10 secondes de délai)
Stop ESXi (10 secondes de délai)

Ajout sur l’ESXi de la commande information suivante :
Etat du mode maintenance


J’ai pu valider la théorie pour les commandes actions, mais pas la réalité.
Si vous avez l’occasion de valider que les 4 commandes actions rajoutées sont fonctionnelles c’est parfait.

Le log d’exécution en DEBUG, que ça soit positif ou négatif sera le bienvenue.

J’ai ajouté une commande info qui donne le statut du Maintenance Mode, ça sera plus pratique avant de balancer un reboot d’être sur que l’ESXi est bien en mode de maintenance je pense.

Il y a un délai par défaut de 10 secondes pour l’arrêt et le reboot.
Donc post mise à jour il faut :
Sauvegarder l’équipement ESXi afin que les commandes arrivent
Faire un refresh sur l’ESXi pour obtenir l’état du mode de maintenance
Tester une commande, voir chaque commande si vous pouvez le faire.
Faire un refresh sur l’ESXi pour obtenir l’état du mode de maintenance et confirmer qu’il a bien changé si vous avez mis en maintenance l’hôte, et inversement une fois en prod de nouveau.

Merci pour vos retours, ou à ceux qui testeront.

@TaG
Entrer/Sortir de maintenance, nickel.

[2020-05-25 18:17:52][INFO] : ========================================================
[2020-05-25 18:17:52][INFO] : ================== Début du log execute ================
[2020-05-25 18:17:52][INFO] : ========================================================
[2020-05-25 18:17:52][INFO] : On appelle la fonction actionOnESXi - enterMaintenanceMode
[2020-05-25 18:17:52][INFO] : ========================================================
[2020-05-25 18:17:52][INFO] : ================= Début du log actionOnESXi ==============
[2020-05-25 18:17:52][INFO] : ========================================================
[2020-05-25 18:17:52][DEBUG] : Login utilisé : root - Ip de l'ESXi : 192.168.0.13
[2020-05-25 18:17:52][DEBUG] : Liste des paramètres transmis :
[2020-05-25 18:17:52][DEBUG] : ActionType : enterMaintenanceMode
[2020-05-25 18:17:53][INFO] : ESXi joignable
[2020-05-25 18:17:53][INFO] : Connexion OK à l'ESXi
[2020-05-25 18:17:53][DEBUG] : IF enterMaintenanceMode
[2020-05-25 18:17:53][DEBUG] : Contenu de la requête : esxcli system maintenanceMode set --enable true
[2020-05-25 18:17:54][DEBUG] : Résultat de l'execution de l'action enterMaintenanceMode :
[2020-05-25 18:17:54][INFO] : Fin fonction actionOnESXi
[2020-05-25 18:17:54][INFO] : Fin fonction execute
[2020-05-25 18:18:22][INFO] : ========================================================
[2020-05-25 18:18:22][INFO] : ================== Début du log execute ================
[2020-05-25 18:18:22][INFO] : ========================================================
[2020-05-25 18:18:22][INFO] : On appelle la fonction actionOnESXi - exitMaintenanceMode
[2020-05-25 18:18:22][INFO] : ========================================================
[2020-05-25 18:18:22][INFO] : ================= Début du log actionOnESXi ==============
[2020-05-25 18:18:22][INFO] : ========================================================
[2020-05-25 18:18:22][DEBUG] : Login utilisé : root - Ip de l'ESXi : 192.168.0.13
[2020-05-25 18:18:22][DEBUG] : Liste des paramètres transmis :
[2020-05-25 18:18:22][DEBUG] : ActionType : exitMaintenanceMode
[2020-05-25 18:18:22][INFO] : ESXi joignable
[2020-05-25 18:18:22][INFO] : Connexion OK à l'ESXi
[2020-05-25 18:18:22][DEBUG] : ELSE IF exitMaintenanceMode
[2020-05-25 18:18:22][DEBUG] : Contenu de la requête : esxcli system maintenanceMode set --enable false
[2020-05-25 18:18:23][DEBUG] : Résultat de l'execution de l'action exitMaintenanceMode :
[2020-05-25 18:18:24][INFO] : Fin fonction actionOnESXi
[2020-05-25 18:18:24][INFO] : Fin fonction execute

En revanche reboot et stop ne fonctionnent pas :

[2020-05-25 18:20:01][INFO] : ========================================================
[2020-05-25 18:20:01][INFO] : ================== Début du log execute ================
[2020-05-25 18:20:01][INFO] : ========================================================
[2020-05-25 18:20:01][INFO] : On appelle la fonction actionOnESXi - rebootESXi
[2020-05-25 18:20:01][INFO] : ========================================================
[2020-05-25 18:20:01][INFO] : ================= Début du log actionOnESXi ==============
[2020-05-25 18:20:01][INFO] : ========================================================
[2020-05-25 18:20:01][DEBUG] : Login utilisé : root - Ip de l'ESXi : 192.168.0.13
[2020-05-25 18:20:01][DEBUG] : Liste des paramètres transmis :
[2020-05-25 18:20:01][DEBUG] : ActionType : rebootESXi
[2020-05-25 18:20:01][INFO] : ESXi joignable
[2020-05-25 18:20:01][INFO] : Connexion OK à l'ESXi
[2020-05-25 18:20:01][DEBUG] : ELSE IF rebootESXi
[2020-05-25 18:20:01][DEBUG] : Contenu de la requête : system shutdown reboot --delay 10 --reason maintenance_From_Jeedom
[2020-05-25 18:20:01][DEBUG] : Résultat de l'execution de l'action rebootESXi : sh: system: not found
[2020-05-25 18:20:02][INFO] : Fin fonction actionOnESXi
[2020-05-25 18:20:02][INFO] : Fin fonction execute
[2020-05-25 18:23:45][INFO] : ========================================================
[2020-05-25 18:23:45][INFO] : ================== Début du log execute ================
[2020-05-25 18:23:45][INFO] : ========================================================
[2020-05-25 18:23:45][INFO] : On appelle la fonction actionOnESXi - stopESXi
[2020-05-25 18:23:45][INFO] : ========================================================
[2020-05-25 18:23:45][INFO] : ================= Début du log actionOnESXi ==============
[2020-05-25 18:23:45][INFO] : ========================================================
[2020-05-25 18:23:45][DEBUG] : Login utilisé : root - Ip de l'ESXi : 192.168.0.13
[2020-05-25 18:23:45][DEBUG] : Liste des paramètres transmis :
[2020-05-25 18:23:45][DEBUG] : ActionType : stopESXi
[2020-05-25 18:23:46][INFO] : ESXi joignable
[2020-05-25 18:23:46][INFO] : Connexion OK à l'ESXi
[2020-05-25 18:23:46][DEBUG] : ELSE IF stopESXi
[2020-05-25 18:23:46][DEBUG] : Contenu de la requête : esxcli system shutdown powerof --delay 10 --reason maintenance_From_Jeedom
[2020-05-25 18:23:46][DEBUG] : Résultat de l'execution de l'action stopESXi : Error: Unknown command or namespace system shutdown powerof
[2020-05-25 18:23:46][INFO] : Fin fonction actionOnESXi
[2020-05-25 18:23:46][INFO] : Fin fonction execute```

Voilà la coquille (poweroff)

[root@localhost:~] esxcli system shutdown poweroff  --delay 10 --reason maintenance_From_Jeedom
System is not in maintenance mode. Cannot perform requested operation.

Et la deuxième (manque esxcli en début) :

[root@localhost:~] esxcli system shutdown reboot --delay 10 --reason maintenance_From_Jeedom
System is not in maintenance mode. Cannot perform requested operation.

@Flobul,

merci pour le test et effectivement, je n’avais pas les yeux en face des trous :).
J’ai poussé sur la beta à l’instant les corrections :).

Tu as pu valider aussi le comportement de la commande info pour l’état du mode maintenance ?

Merci

Oui, il fonctionne aussi.
Je suis entré en mode maintenance, fait un refresh et il est passé Enabled.
En quittant le mode, et refresh, il est passé disabled.

Hello,

Super, merci pour ta confirmation.
Je n’avais pas vu le rappel par mail, d’ou ce délai ;).

On est bon pour ici pour l’instant. c’est niquel.

Merci,

Il reste toujours à voir ceci, si je peux en faire quelque chose via le plugin ou pas:

Script de backup indiqué par bartounet ici : Backup ESXI - Script