内容

概要

背景説明

回避策

vCenter Server for Windows

vCenter Serverアプライアンス

概要

このドキュメントでは、VCSA認定再生後のHyperFlex vCenter登録の障害の問題について説明します。

vCenter Serverで証明書を再生成または交換した後、EAMサービスは新しい証明書を認識せず、ログインできません。

著者：Cisco TACエンジニア、Ignacio Roorzco

背景説明

vCenter証明書の再生成または交換後にHyperflexクラスタをvCenterに再登録しようとすると、次のエラーが表示されます。

「vCenterとESX Agent Manager(EAM)間の接続エラー。 vSphereから、EAMサービスを再起動します。[Retry Cluster Creation]をクリックします。

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 server 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 Server\bin

9. 次のコマンドを使用して、VMware ESX Managerサービスを再起動します。

- service-control —EsxAgentManagerを停止します。

- service-control —EsxAgentManagerの起動

vCenter Serverアプライアンス

1. SSHを使用してvCenterサーバアプライアンスにログインします。

2. 次のコマンドを実行して、Bashシェルへのアクセスを有効にします。

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