vCenter Serverの証明書更新操作またはvCenter Serverへの信頼済みルート証明書のインポート後、vSphere Autodeploy Serviceが新しい証明書を読み込みに失敗した。
YYYY-MM-DDTHH:MM:SS [pool-20-thread-1 [] ERROR com.vmware.certificatemanagement.notifications.AsyncNotifier opId=] Failed to notify AUTODEPLOY on http://localhost:1080/external-vecs/http1/localhost/6501/vmw/rbd/config/refresh-certificates, retrying again.
YYYY-MM-DDTHH:MM:SS [pool-20-thread-1 [] ERROR com.vmware.certificatemanagement.notifications.AsyncNotifier opId=] Failed to notify AUTODEPLOY on http://localhost:1080/external-vecs/http1/localhost/6501/vmw/rbd/config/refresh-certificates, retrying again.
YYYY-MM-DDTHH:MM:SS [pool-20-thread-1 [] ERROR com.vmware.certificatemanagement.notifications.AsyncNotifier opId=] Failed to notify AUTODEPLOY on http://localhost:1080/external-vecs/http1/localhost/6501/vmw/rbd/config/refresh-certificates, retrying again.
YYYY-MM-DDTHH:MM:SS [pool-20-thread-1 [] ERROR com.vmware.certificatemanagement.notifications.AsyncNotifier opId=] Final error while notifying AUTODEPLOY on http://localhost:1080/external-vecs/http1/localhost/6501/vmw/rbd/config/refresh-certificates
java.lang.Exception: Failed to notify AUTODEPLOY on http://localhost:1080/external-vecs/http1/localhost/6501/vmw/rbd/config/refresh-certificates HTTP Error code: 503 Failed HTTP error message : Service Unavailable ErrorStream: no healthy upstream
Autodeploy サービスは停止中。
# service-control --status rbd
Stopped:
rbd
service-control --stop --all コマンドを使用して、Autodeploy サービスを停止した。
/var/log/vmware/cloudvm/service-control.log
YYYY-MM-DDTHH:MM:SS INFO service-control ********** Start ['--stop', '--all', '--ignore'] **********
service-control --stop --all コマンドの実行によるシャットダウン中に登録解除操作が失敗した。
/var/log/vmware/rbd/rbd-watchdog-linux.log
YYYY-MM-DDTHH:MM:SS [251670:MainThread]INFO:rbd_watchdog_linux:Unsubsribing from NDC
YYYY-MM-DDTHH:MM:SS [251670:MainThread]ERROR:rbd_watchdog_linux:Failed to unsubscribe from NDC
Traceback (most recent call last):
File "/var/lib/rbd/bin/rbd_watchdog_linux.py", line 486, in main
refreshcertsutil.NonDisruptiveCerts.unsubscribe()
File "bora/install/vmvisor/autodeploy/site-packages/vmware/rbd/utils/refreshcertsutil.py", line 164, in unsubscribe
File "bora/install/vmvisor/autodeploy/site-packages/vmware/rbd/utils/vapiutil.py", line 179, in createVsphereClient
File "bora/install/vmvisor/autodeploy/site-packages/vmware/rbd/utils/svcaccountutil.py", line 176, in getStsHokSamlAssertion
File "/usr/lib/vmware/site-packages/pyVim/ssov2.py", line 72, in get_hok_saml_assertion_for_service_user
hok_token = self.perform_request(soap_message, public_key, private_key,
File "/usr/lib/vmware/site-packages/pyVim/sso.py", line 264, in perform_request
webservice.endheaders()
File "/usr/lib/python3.10/http/client.py", line 1278, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/lib/python3.10/http/client.py", line 1038, in _send_output
self.send(msg)
File "/usr/lib/python3.10/http/client.py", line 976, in send
self.connect()
File "/usr/lib/python3.10/http/client.py", line 942, in connect
self.sock = self._create_connection(
File "/usr/lib/python3.10/socket.py", line 845, in create_connection
raise err
File "/usr/lib/python3.10/socket.py", line 833, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused
vCenter Server 7.x
vCenter Server 8.x
この問題は、Autodeploy サービスが停止した後も、certificatemanagement サービスへのサブスクリプションが維持されるために発生します。
certificatemanagement サービスへのサブスクリプションは、サービスが開始されると作成され、サービスが停止されると削除されます。
certificatemanagement サービスは、証明書が更新またはインポートされるたびに、そのサブスクライバーに証明書の更新があったことを通知します。
しかし、service-control --stop --all コマンドを実行すると、certificatemanagement サービスは rbd サービスより先に停止します。
これによりサブスクリプションの解除操作が失敗し、サブスクリプションが有効なまま残ります。
結果として、certificatemanagement サービスは既に停止した rbd サービスに証明書更新通知を送信しようとし、503エラーで通知が失敗し、アラームがトリガーされます。
ブロードコムVCFエンジニアリングはこの問題を認識しており、修正に向けて取り組んでいます。
Workaround:
この問題を回避するには、Autodeploy サービスを手動で開始および停止してください。
service-control --start rbd && service-control --stop rbd