目錄

簡介

背景資訊

因應措施

在vCenter Server for Windows上

在vCenter Server裝置上

簡介

本文檔介紹重新生成VCSA認證後HyperFlex vCenter註冊的失敗問題。

在vCenter Server上重新生成/替換證書後，EAM服務不知道新證書，因此無法登入。

作者：思科TAC工程師Ignacio Orozco。

背景資訊

在重新生成/替換vCenter證書後，嘗試向vCenter重新註冊Hyperflex群集時，可以看到以下錯誤：

「vCenter和ESX Agent Manager(EAM)之間出現連線錯誤。 從vSphere重新啟動EAM服務。然後按一下「重試群集建立」。

在stMgr.log中，您可以看到以下內容：

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

在VCSA: /var/log/vmware/eam/eam.log檔案或用於ESX Agent Manager(EAM)的Windows伺服器C:\ProgramData\VMware\vCenterServer\logs\eam\eam.log 上的VC檔案中，您會看到類似以下內容的條目：

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

因應措施

參考文檔：https://kb.vmware.com/s/article/2112577

在vCenter Server for Windows上

1. 通過控制檯或遠端案頭會話連線到vCenter Server。

2. 開啟提升的命令提示符。

3. 建立名為c:\certificate的臨時目錄。

4. 運行此命令以檢索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

5. 導航到C:\Program Files\VMware\vCenter Server\vpxd\scripts:

cd C:\Program Files\VMware\vCenter Server\vpxd\scripts

附註：列出的路徑用於預設安裝的vCenter Server。如果已自定義vCenter Server的安裝位置，請相應地更改目錄。

6. 運行此命令以使用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

附註：預設使用者和域為administrator@vsphere.local。如果在配置過程中更改了此項，請更改域以匹配您的環境。

7. 出現提示時，輸入Administrator@domain.local密碼。

8. 導航到C:\Program Files\VMware\vCenter Server\bin 資料夾：

cd C:\Program Files\VMware\vCenter伺服器\bin

9. 使用以下命令重新啟動VMware ESX Manager服務：

- service-control — 停止EsxAgentManager

- service-control — 啟動EsxAgentManager

在vCenter Server裝置上

1. 使用SSH登入到vCenter Server裝置。

2. 運行此命令以啟用對Bash shell的訪問：

shell.set --enabled true

3. 鍵入shell並按Enter。

4. 運行此命令以檢索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

5. 運行此命令以使用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

附註：預設使用者和域為Administrator@vsphere.local。如果在配置過程中更改了此項，請更改域以匹配您的環境。出現提示時，鍵入Administrator@domain.localpassword。

6. 使用以下命令重新啟動VMware ESX Manager服務：

service-control --stop vmware-eam

service-control --start vmware-eam