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.
Contribution d'Ignacio Orozco, ingénieur du centre d'assistance technique Cisco.
Informations générales
Lorsque vous tentez 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). Dans vSphere, redémarrez les services EAM. Cliquez ensuite sur Réessayer la création du cluster."
Dans le 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 ESX Agent Manager (EAM), vous voyez 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
- Se connecter à vCenter Server via une session de console ou de bureau à distance.
- Ouvrez une invite de commandes avec élévation de privilèges.
- 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
Remarque : 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 le serveur vCenter :
"%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
Remarque : L'utilisateur et le domaine par défaut sont administrator@vsphere.local. Si ce paramètre a été modifié pendant la configuration, modifiez le domaine pour qu'il corresponde à votre environnement.
- Lorsque vous y êtes invité, entrez 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 vCenter Server
- Connectez-vous à l'appliance vCenter Server à 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 le serveur vCenter.
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
Remarque : L'utilisateur et le domaine par défaut sont Administrator@vsphere.local. Si ce paramètre a été modifié pendant la configuration, modifiez le domaine pour qu'il corresponde à votre environnement. Lorsque vous y êtes invité, tapez le mot de passe 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