"Failed to update the TRUSTED ROOT certificates for the vSphere Autodeploy Service" アラームが発生した
search cancel

"Failed to update the TRUSTED ROOT certificates for the vSphere Autodeploy Service" アラームが発生した

book

Article ID: 411140

calendar_today

Updated On:

Products

VMware vCenter Server 8.0

Issue/Introduction

Symptoms

  • vCenter Serverの証明書更新操作またはvCenter Serverへの信頼済みルート証明書のインポート後、vSphere Autodeploy Serviceが新しい証明書を読み込みに失敗した。

  • certificatemanagement-svcs.log で次のような 503 エラーが確認できる。

    /var/log/vmware/certificatemanagement/certificatemanagement-svcs.log
    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

Environment

vCenter Server 7.x
vCenter Server 8.x

Cause

この問題は、Autodeploy サービスが停止した後も、certificatemanagement サービスへのサブスクリプションが維持されるために発生します。

certificatemanagement サービスへのサブスクリプションは、サービスが開始されると作成され、サービスが停止されると削除されます。
certificatemanagement サービスは、証明書が更新またはインポートされるたびに、そのサブスクライバーに証明書の更新があったことを通知します。

しかし、service-control --stop --all コマンドを実行すると、certificatemanagement サービスは rbd サービスより先に停止します。
これによりサブスクリプションの解除操作が失敗し、サブスクリプションが有効なまま残ります。

結果として、certificatemanagement サービスは既に停止した rbd サービスに証明書更新通知を送信しようとし、503エラーで通知が失敗し、アラームがトリガーされます。

Resolution

ブロードコムVCFエンジニアリングはこの問題を認識しており、修正に向けて取り組んでいます。


Workaround:
この問題を回避するには、Autodeploy サービスを手動で開始および停止してください。

service-control --start rbd && service-control --stop rbd

Additional Information