9.2. Orchestration サービスの設定
Orchestration サービスを設定するには、以下のタスクを行う必要があります。
- Orchestration サービス用のデータベースの設定
- 各 Orchestration API サービスと対応する IP アドレスのバインド
- Orchestration サービス用のアイデンティティーレコードの作成/設定
- Orchestration サービスが Identity サービスを使用して認証を行う方法の設定
以下のセクションでは、これらの各手順について詳しく説明します。
9.2.1. Orchestration サービスのデータベース接続の設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Orchestration サービスにより使用されるデータベースおよびデータベースユーザーを作成します。Orchestration サービスで使用されるデータベース接続文字列は、
/etc/heat/heat.conf
ファイルで定義されます。有効なデータベースサーバーを参照するように更新してから、サービスを起動する必要があります。以下の手順で記載のステップはすべて、データベースサーバーに root
ユーザーでログインして実行する必要があります。
手順9.1 Orchestration サービスのデータベースの接続の設定
- データベースサービスに接続します。
mysql -u root -p
# mysql -u root -p
Copy to Clipboard Copied! Toggle word wrap Toggle overflow heat
データベースを作成します。mysql> CREATE DATABASE heat;
mysql> CREATE DATABASE heat;
Copy to Clipboard Copied! Toggle word wrap Toggle overflow heat
という名前のデータベースユーザーを作成して、heat
データベースへのアクセスを許可します。mysql> GRANT ALL ON heat.* TO 'heat'@'%' IDENTIFIED BY 'PASSWORD'; mysql> GRANT ALL ON heat.* TO 'heat'@'localhost' IDENTIFIED BY 'PASSWORD';
mysql> GRANT ALL ON heat.* TO 'heat'@'%' IDENTIFIED BY 'PASSWORD'; mysql> GRANT ALL ON heat.* TO 'heat'@'localhost' IDENTIFIED BY 'PASSWORD';
Copy to Clipboard Copied! Toggle word wrap Toggle overflow PASSWORD は、このユーザーとしてデータベースサーバーとの認証を行う際に使用するセキュアなパスワードに置き換えます。- データベースの特権をフラッシュして、設定が即時に反映されるようにします。
mysql> FLUSH PRIVILEGES;
mysql> FLUSH PRIVILEGES;
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - mysql クライアントを終了します。
mysql> quit
mysql> quit
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sql_connection
設定キーの値を設定します。openstack-config --set /etc/heat/heat.conf \ DEFAULT sql_connection mysql://heat:PASSWORD@IP/heat
# openstack-config --set /etc/heat/heat.conf \ DEFAULT sql_connection mysql://heat:PASSWORD@IP/heat
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えてください。- PASSWORD は
heat
データベースユーザーのパスワードに置き換えます。 - IP は、Identity サーバーの IP アドレスまたはホスト名に置き換えます。
heat
ユーザーとしてデータベースを同期します。runuser -s /bin/sh heat -c "heat-manage db_sync"
# runuser -s /bin/sh heat -c "heat-manage db_sync"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
重要
この接続設定キーに指定する IP アドレスまたはホスト名は、Orchestration サービスのデータベースの作成時に Orchestration サービスのデータベースユーザーがアクセスを許可された IP アドレスまたはホスト名と一致する必要があります。また、データベースがローカルでホストされ、Orchestration サービスのデータベースの作成時に「localhost」へのアクセス権を付与した場合には、「localost」と入力する必要があります。
9.2.2. 各 Orchestration API サービスのバインドアドレスの制限 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
データベースを設定した後には、各 Orchestration API サービスの
bind_host
設定を設定します。この設定は、サービスが受信接続に使用する必要のある IP アドレスを制御します。
各 Orchestration API サービスの
bind_host
設定を設定します。
IP は、対応する API が使用する必要のあるアドレスに置き換えます。
9.2.3. Orchestration サービス用のアイデンティティーレコードの作成 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Orchestration サービスで必要な Identity サービスを作成して設定します。これらのエントリーは、Orchestration サービスによって提供されるボリューム機能を検索してアクセスを試みる他の OpenStack サービスを補助します。
以下の手順では、管理ユーザーと
services
テナントが作成済みであることを前提としています。詳しい説明は、以下のリンクを参照してください。
以下の手順は、Identity サービスサーバーまたは
keystonerc_admin
ファイルをコピーして keystone コマンドラインユーティリティーをインストールした任意のマシンで実行してください。
手順9.2 Orchestration サービス用のアイデンティティーレコードの作成
- Keystone に管理ユーザーとしてアクセスするためのシェルを設定します。
source ~/keystonerc_admin
# source ~/keystonerc_admin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow heat
ユーザーを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow PASSWORD は、Orchestration サービスが Identity サービスとの認証を行う際に使用するセキュアなパスワードに置き換えます。services
テナントのコンテキスト内で、heat
ユーザーとadmin
ロールを関連付けます。[(keystone_admin)]# keystone user-role-add --user heat --role admin --tenant services
[(keystone_admin)]# keystone user-role-add --user heat --role admin --tenant services
Copy to Clipboard Copied! Toggle word wrap Toggle overflow heat
およびheat-cfn
のサービスエントリーを作成します。[(keystone_admin)]# keystone service-create --name heat \ --type orchestration # keystone service-create --name heat-cfn \ --type cloudformation
[(keystone_admin)]# keystone service-create --name heat \ --type orchestration # keystone service-create --name heat-cfn \ --type cloudformation
Copy to Clipboard Copied! Toggle word wrap Toggle overflow heat
およびheat-cfn
のサービス用のエンドポイントエントリーを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えてください。- HEAT_CFN_IP は、
heat-cfn
サービスをホストするシステムの IP アドレスまたはホスト名に置き換えます。 - HEAT_IP は、
heat
サービスをホストするシステムの IP アドレスまたはホスト名に置き換えます。
重要
HEAT_CFN_IP および HEAT_IP の値には、http://
プレフィックスを付けます。
9.2.3.1. Orchestration サービス用の必須 Identity ドメインの作成 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Orchestration サービスは、独自の Identity ドメインが必要です。このドメインを利用して、ユーザーを作成して、
heat
スタックが所有するインスタンス内にデプロイされた認証情報を関連付けることができます。また、別のドメインを使用することで、インスタンスとスタックをデプロイするユーザーを分離することができます。これにより、一般ユーザーは管理者権限がなくとも、このような認証情報を必要とする heat
スタックをデプロイすることができます。
手順9.3 Orchestration サービス用の Identity サービスのドメインの作成
- Identity サービスが使用する管理トークンを取得します。このトークンは、Identity サーバーの
/etc/keystone/keystone.conf
ファイル内のadmin_token
設定キーです。cat /etc/keystone/keystone.conf | grep admin_token admin_token = 0292d404a88c4f269383ff28a3839ab4
# cat /etc/keystone/keystone.conf | grep admin_token admin_token = 0292d404a88c4f269383ff28a3839ab4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 管理トークンは、管理者の認証情報を必要とする全アクションを実行する際に使用します。 - ドメインの作成/設定に使用する Red Hat Enterprise Linux 7.1 ホストに python-openstackclient パッケージをインストールします。
yum install python-openstackclient
# yum install python-openstackclient
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux 7.1 から、本手順の残りのステップを実行します。 heat
ドメインを作成します。openstack --os-token ADMIN_TOKEN --os-url=IDENTITY_IP:5000/v3 \ --os-identity-api-version=3 domain create heat \ --description "Owns users and projects created by heat"
# openstack --os-token ADMIN_TOKEN --os-url=IDENTITY_IP:5000/v3 \ --os-identity-api-version=3 domain create heat \ --description "Owns users and projects created by heat"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えてください。- ADMIN_TOKEN は、管理トークンに置き換えます。
- IP は、Identity サービスをホストするサーバーの IP アドレスまたはホスト名に置き換えます。
このコマンドにより、heat
ドメインのドメイン ID が返されるはずです。この ID (HEAT_DOMAIN_ID) は次のステップで使用します。heat
ドメイン内で管理者権限を持つことのできるheat_domain_admin
という名前のユーザーを作成します。openstack --os-token ADMIN_TOKEN --os-url=IDENTITY_IP:5000/v3 \ --os-identity-api-version=3 user create heat_domain_admin \ --password PASSWORD \ --domain HEAT_DOMAIN_ID
# openstack --os-token ADMIN_TOKEN --os-url=IDENTITY_IP:5000/v3 \ --os-identity-api-version=3 user create heat_domain_admin \ --password PASSWORD \ --domain HEAT_DOMAIN_ID --description "Manages users and projects created by heat"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow PASSWORD は、このユーザーのパスワードに置き換えます。上記のコマンドによりユーザー ID (DOMAIN_ADMIN_ID) が返されます。この ID は、次のステップで使用します。heat_domain_admin
ユーザーに、heat
ドメイン内の管理者権限を付与します。openstack --os-token ADMIN_TOKEN --os-url=IDENTITY_IP:5000/v3 \ --os-identity-api-version=3 role add --user DOMAIN_ADMIN_ID \ --domain HEAT_DOMAIN_ID admin
# openstack --os-token ADMIN_TOKEN --os-url=IDENTITY_IP:5000/v3 \ --os-identity-api-version=3 role add --user DOMAIN_ADMIN_ID \ --domain HEAT_DOMAIN_ID admin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Orchestration サービスをホストするサーバー上で、Orchestration サービスが
heat
ドメインとユーザーを使用するように設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.2.4. Orchestration サービスの認証設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Orchestration サービスが認証に Identity サービスを使用するように設定します。以下の手順に記載するステップはすべて、Orchestration サービスをホストする各システムに
root
ユーザーとしてログインして実行する必要があります。
手順9.4 Orchestration サービスが Identity サービスを使用して認証を行うための設定
- Orchestration サービスが正しいテナントとして認証を行うように設定します。
openstack-config --set /etc/heat/heat.conf \ keystone_authtoken admin_tenant_name services
# openstack-config --set /etc/heat/heat.conf \ keystone_authtoken admin_tenant_name services
Copy to Clipboard Copied! Toggle word wrap Toggle overflow services は、Orchestration サービスを使用するために作成したテナントの名前に置き換えます。本ガイドの例では、services
を使用しています。 - Orchestration サービスが
heat
管理ユーザーアカウントを使用して認証を行うように設定します。openstack-config --set /etc/heat/heat.conf \ keystone_authtoken admin_user heat
# openstack-config --set /etc/heat/heat.conf \ keystone_authtoken admin_user heat
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Orchestration サービスが正しい
heat
管理ユーザーアカウントパスワードを使用するように設定します。openstack-config --set /etc/heat/heat.conf \ keystone_authtoken admin_password PASSWORD
# openstack-config --set /etc/heat/heat.conf \ keystone_authtoken admin_password PASSWORD
Copy to Clipboard Copied! Toggle word wrap Toggle overflow PASSWORD は、heat
ユーザーの作成時に設定したパスワードに置き換えます。 - Orchestration サービスが使用する必要のある Identity サービスのホストを設定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow KEYSTONE_HOST は、Identity サービスをホストするサーバーの IP アドレスまたはホスト名に置き換えます。Identity サービスが同じシステムでホストされている場合には、127.0.0.1
を使用してください。 - 仮想マシンインスタンスの接続先となる
heat-api-cfn
およびheat-api-cloudwatch
のサービスのホスト名を設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えてください。- HEAT_CFN_HOST は、
heat-api-cfn
サービスをホストするサーバーの IP アドレスまたはホスト名に置き換えます。 - HEAT_CLOUDWATCH_HOST は、
heat-api-cloudwatch
サービスをホストするサーバーの IP アドレスまたはホスト名に置き換えます。
重要
全サービスが同じシステム上でホストされている場合でも、127.0.0.1
はどのサービスホスト名にも使用しないでください。この IP アドレスは、各インスタンスのローカルホストを参照するので、そのインスタンスが実際のサービスに到達できなくなります。 - アプリケーションテンプレートは、オーケストレーションに WaitCondition とシグナル送信を使用します。進捗データを受信するユーザーの Identity ロールを定義してください。デフォルトでは、このロールは
heat_stack_user
です。openstack-config --set /etc/heat/heat.conf \ DEFAULT heat_stack_user_role heat_stack_user
# openstack-config --set /etc/heat/heat.conf \ DEFAULT heat_stack_user_role heat_stack_user
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.2.5. Orchestration サービスのための RabbitMQ メッセージブローカーの設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
RabbitMQ はデフォルト (かつ推奨の) メッセージブローカーです。RabbitMQ メッセージングサービスは、rabbitmq-server パッケージにより提供されます。以下の手順で記載する全ステップは、Orchestration コントローラーサービスをホストするシステムに
root
ユーザーとしてログインして実行する必要があります。
手順9.5 Orchestration サービスが RabbitMQ メッセージブローカーを使用するための設定
- RPC バックエンドとして RabbitMQ を設定します。
openstack-config --set /etc/heat/heat.conf \ DEFAULT rpc_backend heat.openstack.common.rpc.impl_kombu
# openstack-config --set /etc/heat/heat.conf \ DEFAULT rpc_backend heat.openstack.common.rpc.impl_kombu
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Orchestration サービスが RabbitMQ ホストに接続するように設定します。
openstack-config --set /etc/heat/heat.conf \ DEFAULT rabbit_host RABBITMQ_HOST
# openstack-config --set /etc/heat/heat.conf \ DEFAULT rabbit_host RABBITMQ_HOST
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RABBITMQ_HOST は、メッセージブローカーの IP アドレスまたはホスト名に置き換えます。 - メッセージブローカーのポートを
5672
に設定します。openstack-config --set /etc/heat/heat.conf \ DEFAULT rabbit_port 5672
# openstack-config --set /etc/heat/heat.conf \ DEFAULT rabbit_port 5672
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - RabbitMQ の設定時に Orchestration サービス用に作成した RabbitMQ ユーザー名とパスワードを設定します。
openstack-config --set /etc/heat/heat.conf \ DEFAULT rabbit_userid heat openstack-config --set /etc/heat/heat.conf \ DEFAULT rabbit_password HEAT_PASS
# openstack-config --set /etc/heat/heat.conf \ DEFAULT rabbit_userid heat # openstack-config --set /etc/heat/heat.conf \ DEFAULT rabbit_password HEAT_PASS
Copy to Clipboard Copied! Toggle word wrap Toggle overflow heat
および HEAT_PASS は、Orchestration サービス用に作成した RabbitMQ ユーザー名とパスワードに置き換えます。 - RabbitMQ の起動時に、
heat
ユーザーに全リソースに対するパーミッションが付与されます。このアクセスは、特別に仮想ホスト/
を介して行われます。Orchestration サービスがこの仮想ホストに接続されるように設定します。openstack-config --set /etc/heat/heat.conf \ DEFAULT rabbit_virtual_host /
# openstack-config --set /etc/heat/heat.conf \ DEFAULT rabbit_virtual_host /
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.2.6. Orchestration サービスとメッセージブローカーとの間の SSL 通信の有効化 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
メッセージブローカーで SSL を有効化した場合は、Orchestration サービスも相応に設定する必要があります。以下の手順では、エクスポートしたクライアントの証明書とキーファイルが必要です。これらのファイルのエクスポートの方法に関する説明は、「クライアント用 SSL 証明書のエクスポート」を参照してください。
手順9.6 Orchestration サービスと RabbitMQ メッセージブローカーとの間の SSL 通信の有効化
- メッセージブローカーとの SSL 通信を有効化します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えてください。- /path/to/client.crt はエクスポートされたクライアント証明書の絶対パスに置き換えます。
- /path/to/clientkeyfile.key はエクスポートされたキーファイルの絶対パスに置き換えます。
- 証明書がサードパーティーの認証局 (CA) によって署名されている場合には、次のコマンドを実行する必要もあります。
openstack-config --set /etc/heat/heat.conf \ DEFAULT kombu_ssl_ca_certs /path/to/ca.crt
# openstack-config --set /etc/heat/heat.conf \ DEFAULT kombu_ssl_ca_certs /path/to/ca.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /path/to/ca.crt は、サードパーティー CA によって提供された CA ファイルの絶対パスに置き換えます (詳細は 「RabbitMQ メッセージブローカーでの SSL の有効化」 を参照)。