3.6. Identity サービスエンドポイントの作成

Identity サービスが起動した後には、その API エンドポイントを定義する必要があります。Dashboard を含む一部の OpenStack サービスは、このレコードが存在しない限り機能しません。
以下の手順に記載するステップはすべて、Identity サービスをホストするサーバーに root ユーザーとしてログインして実行する必要があります。

手順3.10 Identity サービスエンドポイントの作成

  1. admin ユーザーとして、Keystone にアクセスするためのシェルを設定します。
    # source ~/keystonerc_admin
  2. OS_SERVICE_TOKEN 環境変数は、管理トークンに設定します。これは、管理トークンの設定時に作成されたトークンファイルを読み取ることによって行います。
    [(keystone_admin)]# export OS_SERVICE_TOKEN=`cat ~/ks_admin_token`
  3. OS_SERVICE_ENDPOINT 環境変数は、Identity サービスをホストするサーバーをポイントするように設定します。
    [(keystone_admin]# export OS_SERVICE_ENDPOINT='http://IP:35357/v2.0'
    IP は、Identity サーバーの IP アドレスまたはホスト名に置き換えます。
  4. Identity サービスのサービスエントリーを作成します。
    [(keystone_admin)]# keystone service-create --name=keystone --type=identity \
       --description="Keystone Identity service"
    +-------------+----------------------------------+
    |   Property  |              Value               |
    +-------------+----------------------------------+
    | description |     Keystone Identity service    |
    | enabled     |               True               |
    | id          | a8bff1db381f4751bd8ac126464511ae |
    | name        |             keystone             |
    | type        |             identity             |
    +-------------+----------------------------------+
  5. v2.0 API Identity サービスのエンドポイントエントリーを作成します。
    [(keystone_admin)]# keystone endpoint-create \
       --service keystone \
       --publicurl 'https://IP:443/v2.0' \
       --adminurl 'https://IP:443/v2.0' \
       --internalurl 'https://IP:5000/v2.0'
       --region 'RegionOne'
    +-------------+----------------------------------+
    |   Property  |              Value               |
    +-------------+----------------------------------+
    | adminurl    |       https://IP:443/keystone/admin       |
    | id          | 1295011fdc874a838f702518e95a0e13 |
    | internalurl |       https://IP:5000/v2.0        |
    | publicurl   |       https://IP:443/keystone/main        |
    | region      |             RegionOne            |
    | service_id  |                 ID               |
    +-------------+----------------------------------+
    IP は、Identity サーバーの IP アドレスまたはホスト名に置き換えます。

    注記

    デフォルトでは、エンドポイントはデフォルトのリージョンである RegionOne で作成されます。エンドポイントの作成時に異なるリージョンを指定する必要がある場合は、--region 引数を使用します。

3.6.1. サービスのリージョン

Identity サービスにカタログ化されている各サービスは、そのリージョンによって特定されます。リージョンは通常、地理的な場所およびそのエンドポイントを示します。複数の Compute デプロイメントを使用する Red Hat OpenStack Platform 環境では、リージョンによりサービスを個別に分離することが可能となります。これは、Compute がインストールされた複数のシステム間でインフラストラクチャーを共有する強固な方法であるとともに、高度の耐障害性を実現します。
管理者は、複数のリージョン間で共有するサービスと、特定のリージョンのみで使用されるサービスを決定します。デフォルトでは、エンドポイントが定義されていてリージョンの指定がない場合には、RegionOne という名前のリージョンに作成されます。
個別のリージョンの使用を開始するには、サービスエンドポイントの追加時に --region の引数を指定します。
[(keystone_admin)]# keystone endpoint-create --region 'RegionOne' \
   --service SERVICENAME\   
   --publicurl PUBLICURL
   --adminurl ADMINURL
   --internalurl INTERNALURL
REGION は、エンドポイントが属するリージョンの名前に置き換えます。リージョン間でエンドポイントを共有する場合には、該当する各リージョンに、同じ URL を含むエンドポイントエントリーを作成します。各サービスの URL を設定する方法についての説明は、対象とするサービスの Identity サービスの設定情報を参照してください。

例3.1 個別のリージョン内のエンドポイント

以下に記載する例では、APAC および EMEA のリージョンが Identity サーバー (identity.example.com) エンドポイントを共有する一方、リージョン固有の Compute API エンドポイントを提供します。
$ keystone endpoint-list
+---------+--------+------------------------------------------------------+
|   id    | region |                      publicurl                       |
+---------+--------+------------------------------------------------------+
| 0d8b... |  APAC  |         http://identity.example.com:5000/v3          |
| 769f... |  EMEA  |         http://identity.example.com:5000/v3          |
| 516c... |  APAC  |  http://nova-apac.example.com:8774/v2/%(tenant_id)s  |
| cf7e... |  EMEA  |  http://nova-emea.example.com:8774/v2/%(tenant_id)s  |
+---------+--------+------------------------------------------------------+