Introduction
Ce document décrit le problème d'échec de l'enregistrement HyperFlex vCenter après la régénération de la certification VCSA.
Après la régénération/le remplacement du certificat sur le serveur vCenter, le service EAM ne connaît pas le nouveau certificat et ne peut pas se connecter.
Contribué par Ignacio Orozco, ingénieur TAC Cisco.
Informations générales
Lorsque vous essayez de réenregistrer le cluster Hyperflex dans vCenter après la régénération/le remplacement du certificat vCenter, vous pouvez voir cette erreur :
« Erreur de connexion entre vCenter et ESX Agent Manager (EAM). À partir de vSphere, redémarrez les services EAM. Cliquez ensuite sur Réessayer la création du cluster. »
Dans stMgr.log, vous pouvez voir ceci :
017-12-20-21:51:17.015 [opId=6b747f93e3224869, operationId=6b747f93e3224869.6b747f93e3224869<:6b747f93e3224869] [pool-4-thread-2] ERROR c.s.s.v.VirtPlatformImpl$ - ESX Agent Manager error
java.rmi.RemoteException: VI SDK invoke exception:; nested exception is:
com.vmware.eam.NoConnectionToVCenter
at com.vmware.vim25.ws.WSClient.invoke(WSClient.java:157) ~[vijava-eam-5.5.6sp.jar:na]
at com.vmware.eam.ws.EamService.queryAgency(EamService.java:144) ~[vijava-eam-5.5.6sp.jar:na
Dans le fichier VCSA : /var/log/vmware/eam/eam.log OU le fichier VC sur le serveur Windows C:\ProgramData\VMware\vCenterServer\logs\eam\eam.log pour le gestionnaire d'agents ESX (EAM), des entrées similaires à :
YYYY-MM-DDTHH:MM:SS.MSZ | INFO | eam-0 | VcConnection.java | 167 | Connecting to vCenter as com.vmware.vim.eam extension
YYYY-MM-DDTHH:MM:SS.MSZ | INFO | eam-0 | VcConnection.java | 603 | Connecting to https://vCenter_Server_FQDN:8089/sdk/vimService via vCenter proxy http://localhost:80
YYYY-MM-DDTHH:MM:SS.MSZ | DEBUG | http-bio-0.0.0.0-15005-exec-1 | AllowAllSamlTokenPolicy.java | 24 | HealtStatus request's token subject name: machine-7502fb4c-3521-48c7-93ed-3d1865e0fff1, subject domain: vsphere.local
YYYY-MM-DDTHH:MM:SS.MSZ | ERROR | eam-0 | VcConnection.java | 179 | Failed to login to vCenter as extension. vCenter has probably not loaded the EAM extension.xml yet.: Cannot complete login due to an incorrect user name or password.
YYYY-MM-DDTHH:MM:SS.MSZ | WARN | eam-0 | VcListener.java | 114 | Trying to recover from error
(vim.fault.InvalidLogin) {
faultCause = null,
faultMessage = null
}
at sun.reflect.GeneratedConstructorAccessor82.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at com.vmware.vim.vmomi.core.types.impl.ComplexTypeImpl.newInstance(ComplexTypeImpl.java:173)
at com.vmware.vim.vmomi.core.types.impl.DefaultDataObjectFactory.newDataObject(DefaultDataObjectFactory.java:26)
at com.vmware.vim.vmomi.core.soap.impl.unmarshaller.ComplexStackContext.
(ComplexStackContext.java:31) at com.vmware.vim.vmomi.core.soap.impl.unmarshaller.UnmarshallerImpl$UnmarshallSoapFaultContext.parse(UnmarshallerImpl.java:141) at com.vmware.vim.vmomi.core.soap.impl.unmarshaller.UnmarshallerImpl$UnmarshallSoapFau
Solution de contournement
Document de référence : https://kb.vmware.com/s/article/2112577
Sur vCenter Server pour Windows
- Connectez-vous à vCenter Server via une session Bureau à distance ou console.
- Ouvrez une invite de commandes élevée.
- Créez un répertoire temporaire nommé c:\certificate.
- Exécutez cette commande pour récupérer le certificat utilisateur et la clé de la solution vpxd-extension :
"%VMWARE_CIS_HOME%"\vmafdd\vecs-cli entry getcert --store vpxd-extension --alias vpxd-extension --output c:\certificate\vpxd-extension.crt
"%VMWARE_CIS_HOME%"\vmafdd\vecs-cli entry getkey --store vpxd-extension --alias vpxd-extension --output c:\certificate\vpxd-extension.key
- Accédez à C:\Program Files\VMware\vCenter Server\vpxd\scripts :
cd C:\Program Files\VMware\vCenter Server\vpxd\scripts
Note: Le chemin indiqué correspond à une installation par défaut de vCenter Server. Si vous avez personnalisé l'emplacement d'installation de vCenter Server, modifiez le répertoire en conséquence.
- Exécutez cette commande pour mettre à jour le certificat de l'extension avec vCenter Server :
"%VMWARE_PYTHON_BIN%" updateExtensionCertInVC.py -e com.vmware.vim.eam -c C:\Certificate\vpxd-extension.crt -k C:\Certificate\vpxd-extension.key -s localhost -u Administrator@domain.local
Note: L'utilisateur et le domaine par défaut sont administrator@vsphere.local. Si cela a été modifié lors de la configuration, modifiez le domaine pour qu'il corresponde à votre environnement.
- Lorsque vous y êtes invité, saisissez le mot de passe Administrator@domain.local.
- Accédez au dossier C:\Program Files\VMware\vCenter Server\bin :
cd C:\Program Files\VMware\vCenter Server\bin
- Redémarrez le service VMware ESX Manager à l'aide des commandes suivantes :
- service-control —stop EsxAgentManager
- service-control —start EsxAgentManager
Sur l'appliance de serveur vCenter
- Connectez-vous au serveur vCenter à l'aide de SSH.
- Exécutez cette commande pour activer l'accès au shell Bash :
shell.set --enabled true
- Tapez shell et appuyez sur Entrée.
- Exécutez cette commande pour récupérer le certificat utilisateur et la clé de la solution vpxd-extension :
mkdir /certificate
/usr/lib/vmware-vmafd/bin/vecs-cli entry getcert --store vpxd-extension --alias vpxd-extension --output /certificate/vpxd-extension.crt
/usr/lib/vmware-vmafd/bin/vecs-cli entry getkey --store vpxd-extension --alias vpxd-extension --output /certificate/vpxd-extension.key
- Exécutez cette commande pour mettre à jour le certificat de l'extension avec vCenter Server.
python /usr/lib/vmware-vpx/scripts/updateExtensionCertInVC.py -e com.vmware.vim.eam -c /certificate/vpxd-extension.crt -k /certificate/vpxd-extension.key -s localhost -u Administrator@domain.local
Note: L'utilisateur et le domaine par défaut sont Administrator@vsphere.local. Si cela a été modifié lors de la configuration, modifiez le domaine pour qu'il corresponde à votre environnement. Lorsque vous y êtes invité, tapez Administrator@domain.localpassword.
- Redémarrez le service VMware ESX Manager à l'aide des commandes suivantes :
service-control --stop vmware-eam
service-control --start vmware-eam