3.9. Identity サービスのインストールの検証
Identity サービスのインストールが正しく機能していることを確認します。以下の手順で記載するすべてのステップは、Identity サーバーまたは環境内の他のサービスで実行する必要があります。ログインするユーザーは、管理ユーザーおよび一般ユーザーとして認証するために、それぞれの必要な環境変数が含まれている
keystonerc_admin と keystonerc_user のファイルへのアクセス権が必要です。また、システムには、httpd、mod_wsgi、mod_ssl (セキュリティー目的) をインストールしておく必要があります。
手順3.13 Identity サービスのインストールの検証
- 管理ユーザーとして、Keystone にアクセスするためのシェルを設定します。
#source ~/keystonerc_admin - システムで定義されているユーザーの一覧を表示します。
[(keystone_admin)]#keystone user-list+----------------------------------+--------+---------+------------------+ | id | name | enabled | email | +----------------------------------+--------+---------+------------------+ | 94d659c3c9534095aba5f8475c87091a | admin | True | | | b8275d7494dd4c9cb3f69967a11f9765 | USER | True | | +----------------------------------+--------+---------+------------------+システムで定義されているユーザーの一覧が表示されます。一覧が表示されない場合には、インストールに問題があります。- 返されたメッセージでパーミッションまたは認証に問題があることが示されている場合には、管理者ユーザーアカウント、テナント、ロールが正しく作成されていることを確認します。また、3 つのオブジェクトが正しくリンクされていることも確認します。
Unable to communicate with identity service: {"error": {"message": "You are not authorized to perform the requested action: admin_required", "code": 403, "title": "Not Authorized"}}. (HTTP 403) - 返されたメッセージで接続に問題があることが示されている場合には、
openstack-keystoneサービスが実行中であることと、ポート5000および35357での接続を許可するようにファイアウォールサービスが設定されていることを確認してください。Authorization Failed: [Errno 111] Connection refused
- 一般の Identity サービスユーザーとして、Keystone にアクセスするためのシェルを設定します。
#source ~/keystonerc_user - システムで定義されているユーザーの一覧を表示してみます。
[(keystone_user)]#keystone user-listUnable to communicate with identity service: {"error": {"message": "You are not authorized to perform the requested action: admin_required", "code": 403, "title": "Not Authorized"}}. (HTTP 403)このコマンドを実行する権限がないこと (Not Authorized) を示すエラーメッセージが表示されます。このエラーメッセージが表示されず、代わりにユーザー一覧が表示された場合には、その一般ユーザーアカウントに誤ってadminロールが関連付けられていたことになります。 - 一般ユーザーアカウントがアクセス権限のあるコマンドを実行できることを検証します。
[(keystone_user)]#keystone token-get+-----------+----------------------------------+ | Property | Value | +-----------+----------------------------------+ | expires | 2013-05-07T13:00:24Z | | id | 5f6e089b24d94b198c877c58229f2067 | | tenant_id | f7e8628768f2437587651ab959fbe239 | | user_id | 8109f0e3deaf46d5990674443dcf7db7 | +-----------+----------------------------------+
3.9.1. Identity クライアント (keystone) の接続性における問題のトラブルシューティング
Identity クライアント (
keystone) が Identity サービスと通信できない場合には、次のようなエラーが返されます。
Unable to communicate with identity service: [Errno 113] No route to host. (HTTP 400)
この問題をデバッグするには、以下にあげる一般的な原因を確認してください。
- Identity サービスが稼働していない場合
- Identity サービスをホストするシステムで、サービスのステータスを確認します。
#openstack-status | grep keystoneopenstack-keystone: activeサービスが実行されていない場合には、rootユーザーとしてログインして起動します。#service openstack-keystone start - ファイアウォールが適切に設定されていない場合
- ファイアウォールがポート
5000と35357で TCP トラフィックを許可するように設定されていない可能性があります。「Identity サービスのトラフィックを許可するためのファイアウォール設定」で設定を正しく修正する方法を参照してください。 - サービスエンドポイントが正しく定義されていない場合
- Identity サービスをホストするサーバーで、エンドポイントが正しく定義されているかどうかを確認します。
手順3.14 Identity サービスのエンドポイントの確認
- 管理トークンを取得します。
#grep admin_token /etc/keystone/keystone.confadmin_token = 0292d404a88c4f269383ff28a3839ab4 - 事前に定義されている Identity サービス関連の環境変数の設定を解除します。
#unset OS_USERNAME OS_TENANT_NAME OS_PASSWORD OS_AUTH_URL - 管理トークンとエンドポイントを使用して、Identity サービスとの認証を行います。Identity サービスのエンドポイントが正しいことを確認してください。
#keystone --os-token TOKEN \--os-endpoint ENDPOINT \endpoint-listTOKEN は管理トークンの ID に、ENDPOINT は 管理エンドポイント (http://IP:35357/v2.0) のエンドポイントに置き換えます。一覧表示された Identity サービスのpublicurl、internalurl、およびadminurlが正しいことを確認してください。特に、各エンドポイント内にリストされている IP アドレスとポート番号が正しく、ネットワーク上で到達可能であるようにしてください。 - これらの値が正しくない場合には、正しいエンドポイントの追加方法について記載した「Identity サービスエンドポイントの作成」の説明を参照してください。正しいエンドポイントが追加されたら、誤ったエンドポイントを削除します。
#keystone --os-token=TOKEN \--os-endpoint=ENDPOINT \endpoint-delete IDTOKEN および ENDPOINT は、上記のステップで特定した値に置き換えます。ID はendpoint-listアクションにより一覧表示される、削除対象のエンドポイントに置き換えます。