vCenter の PNID 変更が、"Failed to regenerate certificates" というエラーで失敗する
search cancel

vCenter の PNID 変更が、"Failed to regenerate certificates" というエラーで失敗する

book

Article ID: 425947

calendar_today

Updated On:

Products

VMware vCenter Server

Issue/Introduction

免責事項:これは英文記事「vCenter PNID Change fails with "Failed to regenerate certificates"」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。


症状:

  • "Failed to regenerate certificates" というエラーで、PNID 変更が失敗する。
  • /var/log/vmware/applmgmt/pnid_change.log に、以下のようなエントリが記録される。
[YYYY-MM-DDTHH:MM:SS] - pnid_utils-run_command():81 - INFO - Running command: /usr/lib/vmware-vmca/bin/certool --server=localhost --gencert --privkey=/tmp/tmpxe4l1fu4 --cert=/tmp/tmpanpyys4f --config=/var/vmware/applmgmt/pnid/pnid_cert.cfg
[YYYY-MM-DDTHH:MM:SS] - pnid_utils-run_command():99 - INFO - Command exited with exitcode : 0
[YYYY-MM-DDTHH:MM:SS] - pnid_utils-run_command():109 - INFO - Done running command
[YYYY-MM-DDTHH:MM:SS] - pnid_utils-generate_ssl_cert():782 - INFO - Successfully updated machine ssl certificates in vecs
[YYYY-MM-DDTHH:MM:SS] - pnid_utils-restart_services():1560 - ERROR - unidentifiable C++ exception
[YYYY-MM-DDTHH:MM:SS] - pnid_utils-update_task_status():1419 - INFO - Task : Failed to regenerate certificates.

 

  • /var/log/vmware/vmdird/vmdird-syslog.log に、以下のようなエントリが記録される。
[YYYY-MM-DDTHH:MM:SS] info vmdird  t@139645182822208: VmDir State (3)
[YYYY-MM-DDTHH:MM:SS] info vmdird  t@139645182822208: Lotus Vmdird: running... state (3)
[YYYY-MM-DDTHH:MM:SS] info vmdird  t@139645182822208: Lotus Vmdird: running in FIPS mode.
[YYYY-MM-DDTHH:MM:SS] info vmdird  t@139623061772032: Vmkdc: initializing directory
[YYYY-MM-DDTHH:MM:SS] info vmdird  t@139623061772032: Vmkdc: VmKdcdStateSet(1)
[YYYY-MM-DDTHH:MM:SS] info vmdird  t@139623162386176: VmDirUpdateDCNameToLocalNode - PNID: (vcenter.vclass2.local.vclass.local)
[YYYY-MM-DDTHH:MM:SS] info vmdird  Starting VMware Directory Servicedone
[YYYY-MM-DDTHH:MM:SS] info vmdird  t@139623162386176: VmDirUpdateDCNameToLocalNode - pszDCName: (vcenter.vclass2.local.vclass.local)
[YYYY-MM-DDTHH:MM:SS] info vmdird  t@139623162386176: Successfully notified VMAFD to update DC Name to local node
[YYYY-MM-DDTHH:MM:SS] info vmdird  t@139623078557440: VmDirUpdateDCNameToLocalNode - PNID: (vcenter.vclass2.local.vclass.local)
[YYYY-MM-DDTHH:MM:SS] info vmdird  t@139623078557440: VmDirUpdateDCNameToLocalNode - pszDCName: (vcenter.vclass2.local.vclass.local)
[YYYY-MM-DDTHH:MM:SS] info vmdird  t@139623078557440: Successfully notified VMAFD to update DC Name to local node
[YYYY-MM-DDTHH:MM:SS] err vmdird  t@139623053379328: VmDirSRPGetIdentityData ([email protected]) failed, (9611)
[YYYY-MM-DDTHH:MM:SS] err vmdird  t@139623053379328: VmDirSRPGetIdentityData ([email protected]) failed, (9611)
[YYYY-MM-DDTHH:MM:SS] err vmdird  t@139623053379328: SASLSessionStart: sasl error (-20)(SASL(-13): user not found: no secret in database)
[YYYY-MM-DDTHH:MM:SS] err vmdird  t@139623053379328: VmDirSendLdapResult: Request (Bind), Error (LDAP_INVALID_CREDENTIALS(49)), Message ((49)(SASL start failed.)), (0) socket (127.0.0.1)
[YYYY-MM-DDTHH:MM:SS] err vmdird  t@139623053379328: Bind Request Failed (127.0.0.1) error 49: Protocol version: 3, Bind DN: "", Method: SASL

Environment

VMware vCenter Server 6.7.x
VMware vCenter Server 7.x

Cause

  • pnid 変更処理により PNID は誤った値に更新される場合があります。PNID が誤っている場合、証明書作成は失敗し、この問題が発生します。
  • DC アカウント名が PNID のショートネームとなっている場合に pnid を更新すると、この問題が発生します。
  • DC アカウント名や変更前後の PNID は、/var/log/vmware/applmgmt/pnid_change.log の以下エントリから確認可能です。
[YYYY-MM-DDTHH:MM:SS] - pnid_utils-check_isUseradministrator():2175 - INFO - DC Account name : vcenter is not same as PNID : vcenter.vclass.local
[YYYY-MM-DDTHH:MM:SS] - pnid_utils-prepare_pnid_change():1721 - INFO - Old PNID : vcenter.vclass.local
[YYYY-MM-DDTHH:MM:SS] - pnid_utils-prepare_pnid_change():1724 - INFO - Starting PNID Change to vcenter.vclass2.local with task id : 9fb468a3-36f9-45cc-8338-627cfe20d924:com.vmware.appliance.networking

         上記ログ抜粋から、各パラメータを以下の通りと特定できます。

DC アカウント名:vcenter
変更前 PNID:
   vcenter.vclass.local
変更後 PNID:   vcenter.vclass2.local

  • 上記パラメータの場合、pnid 変更処理により pnid が vcenter.vclass2.local.vclass.local へ更新されますが、これは誤っています。

Resolution

これは、特定の場合に PNID を正しく更新できないという、PNID 更新処理における既知の問題です。

回避策:
この問題を回避するには、以下手順により DC アカウント名を現在の vCenter pnid へ更新する必要があります。

  • PNID 更新前の状態に vCenter をロールバック
  • 現在の vCenter pnid を指定して、vmafd-cli change-pnid を実行 (指定する PNID を、事前に名前解決可能としてください。)

/usr/lib/vmware-vmafd/bin/vmafd-cli change-pnid --pnid vcenter.vclass.local --user-name 'administrator' --password <>

  • 全サービスを再起動後、vCenter 機能の利用に問題がないことを確認
  • vCenter の有効なスナップショットまたはバックアップを用意し、VAMI で PNID 更新を実施