8.9. メタデータサーバーのポーリング
デプロイメントは進行中ですが、CREATE_IN_PROGRESS
の段階で一時停止されます。次のステップでは、オーバークラウドノードのオーケストレーションエージェントが director 上のメタデータサーバーをポーリングするように設定します。この操作には、2 つの方法があります。
初期のデプロイメントの場合のみに自動設定を使用します。ノードをスケールアップする場合には自動設定を使用しないでください。
自動設定
director のコア Heat テンプレートコレクションには、オーバークラウドノード上で Heat エージェントの自動設定を行うスクリプトが含まれます。このスクリプトで、director との認証を行ってオーケストレーションサービスに対してクエリーを実行するには、stack
ユーザーとして stackrc
ファイルを読み込む必要があります。
[stack@director ~]$ source ~/stackrc
また、このスクリプトでは、追加の環境変数でノードのロールやその IP アドレスを定義する必要があります。これらの環境変数は以下のとおりです。
- OVERCLOUD_ROLES
- 設定するロールのスペース区切りの一覧。これらのロールは、ロールデータファイルで定義したロールに相関します。
- [ROLE]_hosts
- ロールごとに、環境変数と、ロールに含まれるノードの IP アドレス (スペース区切りの一覧) が必要です。
以下のコマンドは、これらの環境変数の設定例です。
(undercloud) $ export OVERCLOUD_ROLES="ControllerDeployedServer ComputeDeployedServer" (undercloud) $ export ControllerDeployedServer_hosts="192.168.100.2" (undercloud) $ export ComputeDeployedServer_hosts="192.168.100.3"
スクリプトを実行して、各オーバークラウドノード上にオーケストレーションエージェントを設定します。
(undercloud) $ /usr/share/openstack-tripleo-heat-templates/deployed-server/scripts/get-occ-config.sh
このスクリプトは、スクリプトを実行する同じユーザーを使用して SSH 経由で事前にプロビジョニングされたノードにアクセスします。今回の場合は、スクリプトは、stack
ユーザーの認証を行います。
このスクリプトは、以下を行います。
- 各ノードのメタデータ URL を確認するために director のオーケストレーションサービスにクエリーを実行します。
- ノードにアクセスして、固有のメタデータ URL で各ノードのエージェントを設定します。
- オーケストレーションエージェントサービスを再起動します。
スクリプトが完了したら、オーバークラウドノードは director 上でオーケストレーションサービスのポーリングを開始します。スタックのデプロイメントが続行されます。
手動による設定
事前にプロビジョニングされたノードでオーケストレーションエージェントを手動で設定する場合には、以下のコマンドを使用して、各ノードのメタデータ URL に関して director 上のオーケストレーションサービスにクエリーを実行します。
[stack@director ~]$ source ~/stackrc (undercloud) $ for STACK in $(openstack stack resource list -n5 --filter name=deployed-server -c stack_name -f value overcloud) ; do STACKID=$(echo $STACK | cut -d '-' -f2,4 --output-delimiter " ") ; echo "== Metadata URL for $STACKID ==" ; openstack stack resource metadata $STACK deployed-server | jq -r '.["os-collect-config"].request.metadata_url' ; echo ; done
これにより、各ノードのスタック名やメタデータの URL が表示されます。
== Metadata URL for ControllerDeployedServer 0 == http://192.168.24.1:8080/v1/AUTH_6fce4e6019264a5b8283e7125f05b764/ov-edServer-ts6lr4tm5p44-deployed-server-td42md2tap4g/43d302fa-d4c2-40df-b3ac-624d6075ef27?temp_url_sig=58313e577a93de8f8d2367f8ce92dd7be7aac3a1&temp_url_expires=2147483586 == Metadata URL for ComputeDeployedServer 0 == http://192.168.24.1:8080/v1/AUTH_6fce4e6019264a5b8283e7125f05b764/ov-edServer-wdpk7upmz3eh-deployed-server-ghv7ptfikz2j/0a43e94b-fe02-427b-9bfe-71d2b7bb3126?temp_url_sig=8a50d8ed6502969f0063e79bb32592f4203a136e&temp_url_expires=2147483586
各オーバークラウドノード上で以下を行います。
既存の
os-collect-config.conf
テンプレートを削除します。これにより、手動の変更はエージェントにより上書きされなくなります。$ sudo /bin/rm -f /usr/libexec/os-apply-config/templates/etc/os-collect-config.conf
/etc/os-collect-config.conf
ファイルを対応するメタデータ URL を使用するように設定します。たとえば、コントローラーノードは以下を使用します。[DEFAULT] collectors=request command=os-refresh-config polling_interval=30 [request] metadata_url=http://192.168.24.1:8080/v1/AUTH_6fce4e6019264a5b8283e7125f05b764/ov-edServer-ts6lr4tm5p44-deployed-server-td42md2tap4g/43d302fa-d4c2-40df-b3ac-624d6075ef27?temp_url_sig=58313e577a93de8f8d2367f8ce92dd7be7aac3a1&temp_url_expires=2147483586
- ファイルを保存します。
os-collect-config
サービスを再起動します。[stack@controller ~]$ sudo systemctl restart os-collect-config
サービスを設定して再起動した後に、オーケストレーションエージェントは director のオーケストレーションサービスをポーリングしてオーバークラウドの設定を行います。デプロイメントスタックは作成を続行して、各ノードのスタックは最終的に CREATE_COMPLETE
に変わります。