環境
製品 | バージョン |
Spring Cloud Services(SCS) | 1.x |
事象
Spring Cloud Services を用いたコンフィグレーションサーバーのインスタンスを生成したり削除しようとすると、以下のようなエラーが発生する。
status code: 502, error code: 10001, message: Service instance <config-server-name>: Service broker error: Error deleting service instance: Failed to delete app <instance-app>: Error requesting access token.
原因
以前、旧バージョンあるいは現行バージョンの SCS tile をインストールしていたことがあり、完全に削除できていなかったことが原因である可能性が高い。具体的には、tile 削除前に "Remove Service Broker" errand の実行にチェックを入れていなかったか、tile のアンインストールに失敗していた可能性がある。これにより、UAA レコードや CC ルート、サービスアプリケーションが古い状態で残り、次回インストール時にそられに基づく古いクレデンシャル、ルートあるいは、サービスを参照することによって問題が発生している。
解決策
問題を解決する最も容易な方法は、可能であれば、"Remove Service Broker" errand 実行にチェックを入れ tile をアンインストールし、再度クリーンインストールを行うことである。多くの場合、この方法が問題を認識し、早期解決方法となる。
アンインストールでの対応が不可能であったり、より詳細な問題解決のための根拠が必要な場合は、以下の手順にて UAA DB に残存するクレデンシャルを削除し、インストール errand を手動にて再実行することになる。
- UAAC CLI を設定し、こちらのドキュメントに従って UAA サーバーにログオンする。
- SCS によって生成されたユーザーレコードを探す。
uaac users -a emails
この場合の典型的なユーザー名は "p-spring-cloud-services" である。
3. ユーザー名が出力されたら、以下のコマンドを実行する。
uaac user get p-spring-cloud-services
passwordlastmodified タグも参考になる。このタイムスタンプを確認することで、当該ユーザーが前回のインストールで生成されたものなのかどうか確認することができる。
4. 以下のコマンドを実行し、ユーザーを削除する。
uaac user delete p-spring-cloud-services
以上が完了したら、Ops Manager か BOSH を使用して以下のような errand を実行する。
bosh run errand deploy-service-broker
並びに、
bosh run errand register-service-broker
コメント