Dans le but de pouvoir stopper proprement un hyperviseur VMware et ses machines virtuelles en cas d’alerte onduleur, voici une solution pour intégrer un client NUT (Network UPS Tools) natif à vSphere Hypervisor (ESXi 5.0, 5.1, 5.5, 6.0, 6.5, 6.7, 7.0, 8.0 testés). Le client NUT est installé dans l’hyperviseur et peut être contrôlé et paramétré depuis l’interface de configuration de ESXi ou depuis le vCenter s’il est géré.
Réflexion du 30/05/2024 : Broadcom a racheté VMware et a fait un grand ménage dans les formules commerciales. La plus impactante pour ce projet est l’arrêt des licences gratuites pour ESXi. Aujourd’hui les versions 7 et 8 sont celles qui continuaient d’être activement supportées par VMware. Aussi longtemps que je serai en mesure d’exécuter ESXi dans mon lab je continuerai de mettre à jour le client NUT pour ESXi.
Mise en garde 01/11/2023 : Sous ESXi 8.0 et à partir de la version 2.5.0 du client Nut, dans l’interface client HTML, vous ne verrez pas les descriptions associées aux UserVars du client NUT à jour tant que le host ESXi n’aura pas rebooté.
Mise à jour du 19/10/2022 : ESXi 8.0 est sorti ce 11/10/2022, seules les versions du module avec un numéro de version supérieur à 2.3.2 pourront s’installer sur cette nouvelle version de ESXi (abandon du support des binaires 32-bits et checksum SHA256 requis dans la signature du module).
Principe
La procédure consiste à installer dans l’hyperviseur les binaires et scripts nécessaires à la réception des alertes onduleur. Le schéma classique minimal des connexions entre les éléments d’un réseau électrique protégé par un onduleur est le suivant :
Cette solution n’est pas officiellement supportée par VMware et elle ne s’applique qu’à des hyperviseurs standalone. Elle ne peut pas convenir pour des fermes d’hyperviseurs en cluster de haute disponibilité sous le contrôle d’un vCenter. Seul le client NUT est ajouté à l’hyperviseur, l’onduleur doit être surveillé par un serveur NUT indépendant.
Caractéristiques et fonctionnalités
- La méthode d’installation utilise un fichier VIB (vSphere Installation Bundle). Il n’y a rien d’autre ce qui permet une installation rapide et sûre et une désinstallation propre en utilisant les standards de VMware.
- La compatibilité du module a été assurée pour qu’il fonctionne sur toutes les versions de ESXi entre 5.0 et 8.0. Cependant pour les versions 5.x l’installation automatique par déploiement de ViB n’est pas possible, il faut l’installer manuellement en suivant les instructions ci-dessous et passer outre les avertissements de sécurité. A partir de la version 6.0 de ESXi il n’y a plus ce soucis.
- C’est un client NUT 2.8.1 qui est inclus dans le paquetage. Il peut se connecter aux serveurs avec une version plus ancienne (disons 2.6.4 mais je n’ai pas testé les serveurs plus anciens).
- Actuellement seule la version pour processeur x86 est disponible. Il n’y a pas de version pour ESXi ARM (je n’ai ni le besoin ni la plateforme de test/développement pour ça).
- Le client (secondary dans la terminologie NUT) peut se connecter au serveur (primary) en privilégiant une connexion SSL/TLS si elle est disponible. Il ne sera pas fait de vérification de validité de certificat serveur et il n’y a pas de certificat client configurable.
- Le client peut envoyer un mail très succinct à une adresse configurable lors de la réception d’un évènement onduleur (perte du secteur, batterie faible, engagement de l’arrêt, retour du secteur). L’outil mail est très simple et il récupère les informations pour l’envoi des messages du DNS (enregistrements MX). Vous pouvez aussi utiliser un relais SMTP personnel.
- Le client peut se connecter à plusieurs serveurs NUT s’il y a plusieurs onduleurs (cas des serveurs avec une redondance d’alimentation). Il utilisera le même compte et le même mot de passe pour se connecter aux différents serveurs NUT. A vous de déclarer ce compte sur tous les serveurs NUT.
- Normalement il est possible de préciser le port TCP de connexion au serveur NUT sous la forme onduleur@serveur:port mais ESXi impose des règles de firewall pour le trafic sortant et seul le port 3493 est autorisé. C’est le port par défaut des serveurs NUT.
- Il est possible de demander l’arrêt du système ESXi après un laps de temps sur batterie configurable. Le client reste à l’écoute de l’évènement batterie faible et le système entamera sa procédure d’arrêt soit après le temps imparti soit sur évènement de batterie faible, au premier des deux qui surviendra quand le système est sur batterie. L’attente est interrompue si le courant secteur est rétabli entre temps, mais si la procédure d’arrêt a déjà été initiée, elle ira jusqu’à l’extinction du host ESXi.
- Le redémarrage du serveur après une coupure de courant est aussi une phase importante mais c’est à vous de le prévoir avec d’autres outils. Personnellement (mais ce n’est qu’une suggestion) j’aime bien l’idée d’un chef d’orchestre qui redémarre automatiquement. Il surveille le retour des services tels que le réseau, le serveur NUT etc… et il envoie des trames WOL pour réveiller les machines dans l’ordre désiré. Configurez votre serveur NUT pour qu’il ordonne à l’onduleur de couper effectivement le courant pendant un petit laps de temps même si le courant est revenu pendant la procédure d’arrêt. La plupart des onduleurs ont cette fonction avec les libellés « Interval to wait after shutdown with delay command » et « Interval to wait before (re)starting the load ». Certains onduleurs ont aussi une valeur « Minimum battery level for restart after power off » qui est interessante pour attendre que l’onduleur ait suffisamment rechargé ses batteries avant de faire redémarrer le système. Le risque est de se retourner dans une situation où un second arrêt propre serait impossible si une nouvelle coupure de secteur se produit juste après le redémarrage (ce qui est plutôt fréquent).
- Le client tourne avec le compte root. C’est habituellement déconseillé par la documentation du projet NUT mais l’hyperviseur a un nombre très limité de comptes locaux. Ce nombre de compte s’est beaucoup réduit au fil des versions. Des comptes restants, root est le seul encore utilisable.
Téléchargement du module
Pour toutes les versions de ESXi, l’installation peut se faire en ligne de commande sur l’hyperviseur : un fichier TAR compressé doit être déposé sur l’hyperviseur.
Téléchargez ici le fichier
Télécharger “NutClient-ESXi (binaires)” NutClient-ESXi-2.8.2-2.6.2.x86_64.tar.gz – 821,90 Ko
A partir de ESXi 6.0 vous pouvez utiliser le bundle offline pour une installation en ligne de commande en appelant la commande « esxcli software vib install -d » . Ou par le manager de mises à jour du vCenter si vous en avez un.
Téléchargez ici le bundle offline.
Télécharger “NutClient-ESXi (offline bundle)” NutClient-ESXi-2.8.2-2.6.2-offline_bundle.zip – 823,83 Ko
Vous pouvez créer votre propre package personnalisé à partir des sources. Elles sont distribuées sous licence GPLv3 (GNU Public License version 3). Utilisez un environnement de développement linux 64 bits tel que CentOS 7 avec les outils de compilation et développement C habituels. Un fichier INSTALL décrit la procédure. Les sources sont disponibles également dans un dépot git publique : NutClient-ESXi
Téléchargez ici les sources
Télécharger “NutClient-ESXi (sources)” NutClient-ESXi-2.8.2-2.6.2-src.tar.gz – 121,64 Ko
Installation
Activez l’accès ssh à votre host ESXi si ce n’est pas déjà fait. Cela est fait à partir de l’interface d’administration ESXi ou de la console DCUI. A partir de l’interface d’administration : dans la rubrique gérer de votre hôte, onglet services, dans la liste sélectionnez TSM-SSH et démarrez le service. Le service ssh sera actif jusqu’au prochain reboot de l’hyperviseur ou pendant un temps limité selon la version de votre ESXi.
Copiez le fichier NutClient-ESXi-2.8.2-2.6.2.x86_64.tar.gz dans le répertoire /tmp du host ESXi. Ici je vous donne l’exemple depuis une machine linux (remplacez 10.0.0.8 par l’adresse IP du host ESXi ou son nom FQDN). Depuis Windows vous pouvez utiliser l’outil gratuit WinSCP.
[root@linux ~]# scp NutClient-ESXi-2.8.2-2.6.2.x86_64.tar.gz root@10.0.0.8:/tmp The authenticity of host '10.0.0.8 (10.0.0.8)' can't be established. RSA key fingerprint is 89:49:ce:6d:... ...:40:76:7a:4a:fe. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '10.0.0.8' (RSA) to the list of known hosts. Password: (saisir le mot de passe administrateur ESXi) NutClient-ESXi-2.8.2-2.6.2.x86_64.tar.gz 100% 869KB 1.9MB/s 00:00
Passez votre hyperviseur au niveau d’acceptance Communauté si ce n’est pas déjà fait !
Connectez-vous root en ssh à l’hôte ESXi et tapez la suite de commandes suivantes pour installer le VIB (l’opération peu être longue si votre système est installé sur une clé USB lente) :
~ # cd /tmp /tmp # tar -xzf NutClient-ESXi-2.8.2-2.6.2.x86_64.tar.gz /tmp # sh upsmon-install.sh Installation Result Message: Operation finished successfully. Reboot Required: false VIBs Installed: Margar_bootbank_upsmon_2.8.2-2.6.2 VIBs Removed: VIBs Skipped:
Vous n’avez pas besoin de rebooter pour commencer à utiliser le client NUT sur votre système. Vous devez toutefois le configurer avant son premier lancement.
Vous pouvez supprimer les fichiers qui ont été créés dans /tmp et désactiver le service SSH
Configuration
A l’aide de l’interface d’administration du ESXi, rendez-vous dans la rubrique gérer de l’hôte. Sélectionnez les paramètres avancés de l’onglet Système et filtrez la liste sur UserVars.Nut, vous avez 8 variables à configurer :
- UserVars.NutUpsName : Nom de l’onduleur sur le serveur NUT (sous la forme nom_onduleur@nom_ou_ip_serveur). Plusieurs onduleurs peuvent être saisis séparés par un espace. Il n’y aura pas d’arrêt système tant que le dernier onduleur encore debout n’aura pas donné l’ordre d’arrêt.
- UserVars.NutUser : Nom du compte de connexion au serveur NUT
- UserVars.NutPassword : Mot de passe du compte de connexion au serveur NUT
- UserVars.NutFinalDelay : Secondes qu’il faudra attendre après la réception de l’événement batterie faible pour procéder à l’arrêt du système
- UserVars.NutOnBatteryDelay : Délai en secondes après le début du passage sur batterie de l’onduleur pour stopper le système. Si la valeur est 0 alors le client NUT attendra l’évènement batterie faible pour stopper le système. La valeur par défaut est 0, c’est le fonctionnement normal pour garder le système en fonctionnement le plus longtemps possible. Si l’onduleur repasse sur secteur avant la fin du délai, le système ne sera pas stoppé.
- UserVars.NutSendMail : A mettre à 1 pour que le client NUT envoie un e-mail à chaque évènement important de l’onduleur. La valeur 2 permet d’avoir dans le mail l’état des l’onduleurs lors de l’évènement.
- UsersVars.NutSmtpRelay : Nom ou IP d’un relai SMTP pour y faire transiter le mail. Laisser vide ou saisissez none pour ne pas utiliser de relai (none par défaut).
- UserVars.NutMailTo : Adresse e-mail à laquelle envoyer les évènements de l’onduleur
- UserVars.NutMinSupplies : Pour les systèmes multi onduleurs. Le nombre d’onduleurs qui doivent être en capacité d’alimenter le système avant d’entamer un arrêt. Ce nombre doit être inférieur ou égal au nombre d’onduleurs définis dans UserVars.NutUpsName. Si vous ne respectez pas cette contrainte, le client ne démarrera pas. Avec un seul onduleur, laissez la valeur à 1.
Notez qu’à chaque modification de ces paramètres il sera nécessaire de faire un arrêt/relance du service pour leur prise en compte.
Lancement du service
A l’aide de l’interface d’administration du ESXi, rendez-vous dans la rubrique gérer de l’hôte. Sélectionnez l’onglet Services, trouvez et sélectionnez le service NutClient dans la liste:
Dans les actions du service, choisissez la stratégie démarrage (Démarrer et arrêter avec l’hôte me semble un bon choix). Vous pouvez également le démarrer immédiatement ou l’arrêter.
Astuces
Utilisez la rubrique démarrage automatique de l’onglet Système de l’hôte ESXi pour décider de l’ordre de démarrage et d’arrêt (ou suspension) des machines virtuelles. Cet ordre sera respecté par la procédure d’arrêt sur alerte onduleur. Un bug de ESXi fait que les valeurs par défaut ne sont pas respectées. Vous devez configurer ces paramètre pour chaque VM au moins une fois (quitte à la dé-configurer ce qui la fera réellement suivre les règles par défaut).
Important : L’arrêt propre des OS dans les machines virtuelles n’est possible que si les vmware tools sont installées. Sinon l’arrêt sera brutal, préférez alors une suspension dans la configuration d’arrêt de la VM.
Là encore je rappelle que cette solution n’est pas adaptées aux fermes cluster avec haute disponibilité. Si HA est activé sur la machine hôte le mécanisme d’arrêt propre des VM n’est plus respecté et l’arrêt sera brutal pour toutes les VM.
UEFI secure boot
Si votre hôte ESXi est configuré pour booter en mode UEFI secure boot, l’installation du ViB restera compatible avec cette configuration. En revanche vous ne pouvez pas descendre le niveau d’acceptation à CommunitySupported quand secure boot est activé. Vous devrez :
- rebooter pour aller dans les paramètres UEFI de votre carte mère
- désactiver le secure boot dans les paramètres UEFI de votre carte-mère
- booter (sans secure boot)
- descendre le niveau d’acceptation à CommunitySupported
- Rebooter une seconde fois pour retourner dans les paramètres UEFI
- réactiver le secure boot
- booter (avec secure boot).
Vous aurez secure boot actif et le niveau d’acceptation minimal à CommunitySupported.
Désinstallation
Pour désinstaller le client NUT, utilisez le script upsmon-remove qui se trouve dans le fichier que vous avez téléchargé :
/tmp # sh upsmon-remove
Test
Pour estimer le temps nécessaire au serveur pour s’éteindre sur alerte onduleur tapez la commande « /opt/nut/sbin/upsmon -c fsd » sur le host ESXi (par ssh ou sur la console). La procédure d’arrêt est immédiatement lancée (ne faites pas ça si vous n’aviez pas prévu d’arrêter votre machine).
Suggest adding a setting for delayed start of NUT Client
😉
Please explain why. Starting the client is the server is not online is not a problem. It will try to reconnect later.
Hmm. As far as I can tell, the NUT service is not started on the ESXi, when the server is running on a (not yet started) VM, even when set to automatically start with host. When I start it manually, it’s running just fine.
Oh, it does not start at all ? I made some tests a long time ago and the client started and just complaining that it was not able to connect to the server but keeping trying to connect periodically. But as I always say, I don’t advice to install the server in a VM. A very simple raspberry pi with a minimal Linux and a nut server running on it can do the job for a very limited power consumption. I’m going to test it…
I confirm that starting the client while the server is down is not an issue. The client will keep trying to connect to the server regularly until it succeed. Have you configured the service to start and stop automatically with the ESXi host ?
Another successful install. 🙂
Many thanks Renè
(Nicola from Italy)
Bonjour René
Merci de fournir un produit merveilleux.
Y a-t-il un effet si * .conf devient compatible avec le magasin de configuration après ESXi 7.0.2 ?
Bonjour, Je ne comprend pas la question. Le fichier .conf du client NUT est généré à chaque démarrage du service à partir des valeurs renseignées dans les variables UserVars. Stocker ou distribuer le fichier conf n’a aucun intérêt il sera écrasé.
Merci René pour ton commentaire.
À partir d’ESXi 7.0.2, le fichier de configuration est en lecture seule.
https://docs.vmware.com/en/VMware-vSphere/7.0/rn/vsphere-esxi-702-release-notes.html
https://kb.vmware.com/s/article/82637
https://kb.vmware.com/s/article/82638
Vous ne pouvez pas générer un fichier .conf dans ce cas ?
Cela n’a aucune conséquence sur le module client Nut. Le module dispose de ses propres fichiers de configuration et n’a aucune adhérence avec les fichiers de configuration système. Les fichiers qui composent le module client NUT ont toujours été en lecture seule. Pour résumer, en 7.0.2 le module fonctionne de la même façon que sur les versions antérieures et je l’ai testé.
Merci, René.
Je m’excuse. Nous avons confirmé que vib 2.1.1 fonctionne avec ESXi 7.0.2. C’était vib 1.3.0 où le service n’a pas démarré.
La version 1.3 du module est obsolète, elle était destinée à ESXi 5.5 à l’époque
Seems like my license got removed after installing this and needed to reassign it. can that be true?
And Im not sure about the password and name how do I get to know that?
Installing the nut client does not change the license. Password and name is what you configured on the nut server.
Hello, and congratulations on the program
I wanted to ask if it is possible to parameterize the SHUTDOWNCMD parameter?
to allow via a script to shut down all virtual machines.
Thank you
The default shutdown action will execute the configured behavior for VM shutdown. You have to configure the start/stop parameter in ESXi for VMs. There is no default (well, the default is an unclean power off, not the best).
Thanks a lot! I have connected it to my Synology NUT Server, but I would like to ask if there is any way to know if it works.
Could you please let us know how can we test if everything works?
Thanks!
On ESXi you can use command ‘grep upsmon /var/log/syslog.log’ to get the messages related to the nut client. Then try to disconnect the server from the network. You should see a message complaining about lost communication with the server. Put it back again after the test.
Salut René!
Le client NUT avec ton tuto fonctionne impeccable sur la remontée. Cependant j’ai eu un bug assez étrange. A cause d’un disjoncteur, la maison s’est retrouvé sans courant la dernière fois. Mon NUC avec Esx dessus est passé sur onduleur et s’est éteint dès les 20% d’autonomie arrivé.
Cependant après impossible de redémarrer le NUC, il s’allumait puis s’éteignait quelques secondes après. J’ai l’impression que le client NUT ordonné de nouveau l’arrêt à chaque fois. J’ai dû débrancher le câble USB et attendre que londuleur repasse au dessus de 20%. As-tu déjà eu ce bug ?
Merci 🙂
Jamais rien vu de tel. ESXi a besoin de quelques minutes pour démarrer et que le service client NUT soit opérationnel. Si ESXi s’éteint après quelques secondes il n’a peut-être pas encore eu le temps de démarrer complètement. C’est peut-être l’onduleur qui flanche. Le client NUT ne fait que ce que le serveur NUT lui demande. En gros on distingue 4 états :
– Online (OL) : l’onduleur est sur secteur et la batterie est changée, tout va bien, le client est autorisé à tourner
– Onbatt (OB) : perte de secteur et la batterie est chargée, le client est toujours autorisé à tourner
– Onbatt Lowbatt (OB+LB) : perte de secteur et batterie faible, le client doit s’éteindre dès que possible
– Online Lowbatt (OL+LB) : l’onduleur est sur secteur et la batterie est déchargée (après une panne de courant), le client est autorisé à tourner, la batterie est en charge mais le système est fragile.
Tu es certain que le secteur a été rétabli quand tu as relancé ton ESXi ? Le serveur NUT, n’envoie-t-il pas par erreur Lowbatt sans dire Online après le retour du courant ? Dans ce dernier car c’est plutôt un bug dans le driver NUT de ton onduleur.
Les onduleurs ont des design et des comportements différents selon les constructeurs. Il faut regarder aussi du côté des paramètres du serveur NUT.
Salut,
Merci pour ton retour! Aucun soucis niveau alimentation ce jour là. Je passe à travers mon Synology pour ordonner l’arrêt vu que j’ai un Eaton 1200 Pro (qui par ailleurs fait du bruit niveau ventilation, si tu souhaites remplacer un jour). En faisant quelques tests ce matin, je ne reproduits pas le soucis et mes VM s’arrêtent bien ainsi que l’ESXi en lui-même.
Je me demande si c’est pas le Synology qui ne renvoi pas bien le message.
J’essayerai de reproduire le phénomène en déchargeant complétement l’onduleur pour voir dans la semaine.
Super guide!
Serait-il possible d’ajouter une variable pour fermer l’hôte dès qu’on embarque sur batterie? Pour prolonger l’autonomie des mes serveurs plus essentiels, j’aimerais fermer mon serveur VDI/Rendu vidéo 30 secondes après qu’on tombe sur batterie et ne pas attendre l’avertissement batterie faible.
Merci!
Bonjour, c’est une demande qui a déjà été faite et à laquelle j’ai répondu négativement. Le service nécessaire pour éteindre après un laps de temps (upsched) n’est pas inclu dans le module.
It appears there’s an issue with ESXi v7.0.3. This is a fresh install:
[root@esx1:/vmfs/volumes/Synology/Utilities/NutClient-ESXi-2.7.4-2.1.6] sh upsmon-install.sh
[ValueError]
Expected 1 component, found 2
Please refer to the log file for more details.
Here’s the log file (/var/run/esxupdate.log). Apologies for how verbose it is but this is the relevant section:
2021-11-11T17:30:10Z esxupdate: 2102095: vmware.runcommand: INFO: runcommand called with: args = ‘[‘/sbin/esxcfg-advcfg’, ‘-q’, ‘-g’, ‘/UserVars/EsximageNetTimeout’]’, outfile = ‘None’, returnoutput = ‘True’, timeout = ‘0.0’.
2021-11-11T17:30:10Z esxupdate: 2102095: vmware.runcommand: INFO: runcommand called with: args = ‘[‘/sbin/esxcfg-advcfg’, ‘-q’, ‘-g’, ‘/UserVars/EsximageNetRetries’]’, outfile = ‘None’, returnoutput = ‘True’, timeout = ‘0.0’.
2021-11-11T17:30:10Z esxupdate: 2102095: vmware.runcommand: INFO: runcommand called with: args = ‘[‘/sbin/esxcfg-advcfg’, ‘-q’, ‘-g’, ‘/UserVars/EsximageNetRateLimit’]’, outfile = ‘None’, returnoutput = ‘True’, timeout = ‘0.0’.
2021-11-11T17:30:10Z esxupdate: 2102095: root: INFO: Command = vib.list
2021-11-11T17:30:10Z esxupdate: 2102095: root: INFO: Options = {‘depot’: None, ‘viburl’: None, ‘nameid’: None, ‘profile’: None, ‘baseimageversion’: None, ‘addon’: None, ‘softwarespec’: None, ‘level’: None, ‘updateonly’: False, ‘noliveinstall’: False, ‘nomaintmode’: False, ‘force’: False, ‘dryrun’: False, ‘oktoremove’: False, ‘proxy’: None, ‘nosigcheck’: False, ‘pending’: None, ‘rebooting’: False, ‘downgrade’: None, ‘nohwwarning’: False}
2021-11-11T17:30:12Z esxupdate: 2102095: HostImage: INFO: Installers initiated are {‘live’: , ‘boot’: , ‘locker’: }
2021-11-11T17:30:13Z esxupdate: 2102095: imageprofile: INFO: Adding VIB VMware_locker_tools-light_11.3.0.18090558-18644231 to ImageProfile (Updated) DEL-ESXi-703_18644231-A00
2021-11-11T17:30:13Z esxupdate: 2102095: imageprofile: DEBUG: Adding Component VMware-VM-Tools_11.3.0.18090558-18644231 to ImageProfile (Updated) DEL-ESXi-703_18644231-A00
2021-11-11T17:30:13Z esxupdate: 2102095: imageprofile: DEBUG: Removing reserved Component VMware-VM-Tools_11.3.0.18090558-18644231 in ImageProfile (Updated) DEL-ESXi-703_18644231-A00
2021-11-11T17:30:13Z esxupdate: 2102095: root: DEBUG: Finished execution of command = vib.list
2021-11-11T17:30:13Z esxupdate: 2102095: root: DEBUG: Completed esxcli output, going to exit esxcli-software
2021-11-11T17:50:08Z esxupdate: 2102172: vmware.runcommand: INFO: runcommand called with: args = ‘[‘/sbin/esxcfg-advcfg’, ‘-q’, ‘-g’, ‘/UserVars/EsximageNetTimeout’]’, outfile = ‘None’, returnoutput = ‘True’, timeout = ‘0.0’.
2021-11-11T17:50:08Z esxupdate: 2102172: vmware.runcommand: INFO: runcommand called with: args = ‘[‘/sbin/esxcfg-advcfg’, ‘-q’, ‘-g’, ‘/UserVars/EsximageNetRetries’]’, outfile = ‘None’, returnoutput = ‘True’, timeout = ‘0.0’.
2021-11-11T17:50:09Z esxupdate: 2102172: vmware.runcommand: INFO: runcommand called with: args = ‘[‘/sbin/esxcfg-advcfg’, ‘-q’, ‘-g’, ‘/UserVars/EsximageNetRateLimit’]’, outfile = ‘None’, returnoutput = ‘True’, timeout = ‘0.0’.
2021-11-11T17:50:09Z esxupdate: 2102172: root: INFO: Command = vib.install
2021-11-11T17:50:09Z esxupdate: 2102172: root: INFO: Options = {‘depot’: None, ‘viburl’: [‘/vmfs/volumes/Synology/Utilities/NutClient-ESXi-2.7.4-2.1.6/upsmon-2.7.4-2.1.6.i386.vib’], ‘nameid’: None, ‘profile’: None, ‘baseimageversion’: None, ‘addon’: None, ‘softwarespec’: None, ‘level’: None, ‘updateonly’: False, ‘noliveinstall’: False, ‘nomaintmode’: False, ‘force’: False, ‘dryrun’: False, ‘oktoremove’: False, ‘proxy’: None, ‘nosigcheck’: True, ‘pending’: None, ‘rebooting’: False, ‘downgrade’: None, ‘nohwwarning’: False}
2021-11-11T17:50:11Z esxupdate: 2102172: HostImage: INFO: Installers initiated are {‘live’: , ‘boot’: , ‘locker’: }
2021-11-11T17:50:11Z esxupdate: 2102172: imageprofile: INFO: Adding VIB VMware_locker_tools-light_11.3.0.18090558-18644231 to ImageProfile (Updated) DEL-ESXi-703_18644231-A00
2021-11-11T17:50:11Z esxupdate: 2102172: imageprofile: DEBUG: Adding Component VMware-VM-Tools_11.3.0.18090558-18644231 to ImageProfile (Updated) DEL-ESXi-703_18644231-A00
2021-11-11T17:50:11Z esxupdate: 2102172: imageprofile: DEBUG: Removing reserved Component VMware-VM-Tools_11.3.0.18090558-18644231 in ImageProfile (Updated) DEL-ESXi-703_18644231-A00
2021-11-11T17:50:11Z esxupdate: 2102172: HostImage: DEBUG: Deferring initiating installers
2021-11-11T17:50:13Z esxupdate: 2102172: HostImage: INFO: Installers initiated are {‘live’: , ‘boot’: , ‘locker’: }
2021-11-11T17:50:13Z esxupdate: 2102172: imageprofile: INFO: Adding VIB VMware_locker_tools-light_11.3.0.18090558-18644231 to ImageProfile (Updated) DEL-ESXi-703_18644231-A00
2021-11-11T17:50:13Z esxupdate: 2102172: imageprofile: DEBUG: Adding Component VMware-VM-Tools_11.3.0.18090558-18644231 to ImageProfile (Updated) DEL-ESXi-703_18644231-A00
2021-11-11T17:50:13Z esxupdate: 2102172: imageprofile: DEBUG: Removing reserved Component VMware-VM-Tools_11.3.0.18090558-18644231 in ImageProfile (Updated) DEL-ESXi-703_18644231-A00
2021-11-11T17:50:13Z esxupdate: 2102172: Transaction: DEBUG: Metadata is provided, skip download
2021-11-11T17:50:13Z esxupdate: 2102172: Transaction: INFO: Skipping installed VIBs
2021-11-11T17:50:13Z esxupdate: 2102172: Transaction: INFO: Final list of VIBs being installed: Margar_bootbank_upsmon_2.7.4-2.1.6
2021-11-11T17:50:13Z esxupdate: 2102172: imageprofile: INFO: Adding VIB Margar_bootbank_upsmon_2.7.4-2.1.6 to ImageProfile (Updated) DEL-ESXi-703_18644231-A00
2021-11-11T17:50:13Z esxupdate: 2102172: root: ERROR: Traceback (most recent call last):
2021-11-11T17:50:13Z esxupdate: 2102172: root: ERROR: File « /usr/lib/vmware/esxcli-software », line 773, in
2021-11-11T17:50:13Z esxupdate: 2102172: root: ERROR: main()
2021-11-11T17:50:13Z esxupdate: 2102172: root: ERROR: File « /usr/lib/vmware/esxcli-software », line 764, in main
2021-11-11T17:50:13Z esxupdate: 2102172: root: ERROR: ret = CMDTABLE[command](options)
2021-11-11T17:50:13Z esxupdate: 2102172: root: ERROR: File « /usr/lib/vmware/esxcli-software », line 601, in VibInstallCmd
2021-11-11T17:50:13Z esxupdate: 2102172: root: ERROR: res = t.InstallVibsFromSources(viburls, [], nameids,
2021-11-11T17:50:13Z esxupdate: 2102172: root: ERROR: File « /lib64/python3.8/site-packages/vmware/esximage/Transaction.py », line 965, in InstallVibsFromSources
2021-11-11T17:50:13Z esxupdate: 2102172: root: ERROR: inst, removed, exitstate = self._installVibs(curprofile,
2021-11-11T17:50:13Z esxupdate: 2102172: root: ERROR: File « /lib64/python3.8/site-packages/vmware/esximage/Transaction.py », line 1207, in _installVibs
2021-11-11T17:50:13Z esxupdate: 2102172: root: ERROR: hasConfigDowngrade = checkFdmConfigDowngrade(curProfile, newProfile)
2021-11-11T17:50:13Z esxupdate: 2102172: root: ERROR: File « /lib64/python3.8/site-packages/vmware/esximage/Transaction.py », line 1122, in checkFdmConfigDowngrade
2021-11-11T17:50:13Z esxupdate: 2102172: root: ERROR: compDowngrades = curProfile.GetCompsDowngradeInfo(newProfile)
2021-11-11T17:50:13Z esxupdate: 2102172: root: ERROR: File « /lib64/python3.8/site-packages/vmware/esximage/ImageProfile.py », line 2416, in GetCompsDowngradeInfo
2021-11-11T17:50:13Z esxupdate: 2102172: root: ERROR: curComp = self.components.GetComponent(name)
2021-11-11T17:50:13Z esxupdate: 2102172: root: ERROR: File « /lib64/python3.8/site-packages/vmware/esximage/Bulletin.py », line 1276, in GetComponent
2021-11-11T17:50:13Z esxupdate: 2102172: root: ERROR: raise ValueError(‘Expected 1 component, found %u’
2021-11-11T17:50:13Z esxupdate: 2102172: root: ERROR: ValueError: Expected 1 component, found 2
Apologies. I looked for a solution to this for a while then just stumbled upon it after posting the above.
The fix can be found here: https://communities.vmware.com/t5/vSphere-Hypervisor-Discussions/ESXi-7-0-3-Upgrade-Errors/td-p/2870486
In short, just:
[root@esx1:/vmfs/volumes/Synology/Utilities/NutClient-ESXi-2.7.4-2.1.6] esxcli software vib remove –vibname=i40enu
Removal Result
Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
Reboot Required: true
VIBs Installed:
VIBs Removed: VMW_bootbank_i40enu_1.8.1.137-1vmw.702.0.20.18426014
VIBs Skipped:
Resolved the issue.
Had updated DELL with custom image 6.5U3 A08 and now uspmon wont start, some ideas ? Tried to uninstall reboot and install, no chsange. vmkernel says:
WARNING: LinuxFileDesc: 913: upsmon: (path=/dev/urandom, flags=0x220000, mode=0x0): UNSUPPORTED flags 0x200000
I have just tested NutClient package version 2.7.4-2.1.6 on ESXi 6.5U3 build 18678235 with no issue. The upsmon process starts as expected and connects to Nut server. Mails are also sent as expected. What version of NutClient package are you using ?
Latest – 2.1.6.
Confirmed, that process itself seems to be running – or settled down after host reboot. syslog now contain information, which i was expecting:
upsmon[5000321]: Startup successful
NUT: NUT client started
NUT: NUT client is running