13.10. 手動で作成した Playbook を使用した config-download の実行
標準のワークフローとは別に、専用の config-download
ファイルを作成することができます。たとえば、--stack-only
オプションを指定して openstack overcloud deploy
コマンドを実行し、ノードをプロビジョニングしてから、別途 Ansible 設定を手動で適用することができます。
前提条件
- アンダークラウドの正常なインストール。
- デプロイ可能なオーバークラウドノード
- 実際のオーバークラウドカスタマイズに該当する Heat 環境ファイル
手順
-
アンダークラウドホストに
stack
ユーザーとしてログインします。 stackrc
ファイルを取得します。$ source ~/stackrc
--stack-only
オプションを指定してデプロイメントコマンドを実行します。オーバークラウドに必要なすべての環境ファイルを追加します。$ openstack overcloud deploy \ --templates \ -e environment-file1.yaml \ -e environment-file2.yaml \ ... --stack-only
- プロビジョニングプロセスが完了するまで待ちます。
tripleo-admin
ユーザーによるアンダークラウドからオーバークラウドへの SSH アクセスを有効にします。config-download
プロセスでは、tripleo-admin
ユーザーを使用して Ansible ベースの設定を実施します。$ openstack overcloud admin authorize
config-download
ファイルを生成します。$ openstack overcloud config download \ --name overcloud \ --config-dir ~/config-download
-
--name
は、Ansible ファイルのエクスポートに使用するオーバークラウドの名前です。 -
--config-dir
は、config-download
ファイルを保存する場所です。
-
config-download
ファイルが含まれるディレクトリーに移動します。$ cd ~/config-download
静的なインベントリーファイルを生成します。
$ tripleo-ansible-inventory \ --stack <overcloud> \ --ansible_ssh_user heat-admin \ --static-yaml-inventory inventory.yaml
-
<overcloud>
を実際のオーバークラウドの名前に置き換えてください。
-
config-download
ファイルおよび静的なインベントリーファイルを使用して、設定を実施します。デプロイメント用の Playbook を実行するには、ansible-playbook
コマンドを実行します。$ ansible-playbook \ -i inventory.yaml \ -e gather_facts=true \ -e @global_vars.yaml \ --private-key ~/.ssh/id_rsa \ --become \ ~/config-download/deploy_steps_playbook.yaml
- 設定プロセスが完了するまで待ちます。
この設定から手動で
overcloudrc
ファイルを生成するには、以下のコマンドを実行します。$ openstack action execution run \ --save-result \ --run-sync \ tripleo.deployment.overcloudrc \ '{"container":"overcloud"}' \ | jq -r '.["result"]["overcloudrc.v3"]' > overcloudrc.v3
デプロイメントステータスを手動で success に設定します。
$ openstack workflow execution create tripleo.deployment.v1.set_deployment_status_success '{"plan": "<OVERCLOUD>"}'
-
<OVERCLOUD>
を実際のオーバークラウドの名前に置き換えてください。
-
関連情報
config-download
ディレクトリーには、オーバークラウドの設定を実行するdeploy_steps_playbook.yaml
という名前の Playbook が含まれています。この Playbook を表示するには、以下のコマンドを実行します。$ less deploy_steps_playbook.yaml
Playbook は、作業ディレクトリーに含まれているさまざまなタスクファイルを使用します。タスクファイルには、OpenStack Platform の全ロールに共通するものと、特定の OpenStack Platform ロールおよびサーバー固有のものがあります。
config-download
ディレクトリーには、オーバークラウドのroles_data
ファイルで定義する各ロールに対応するサブディレクトリーも含まれます。以下に例を示します。$ ls Controller/
各 OpenStack Platform ロールにディレクトリーには、そのロール種別の個々のサーバー用のサブディレクトリーも含まれます。これらのディレクトリーには、コンポーザブルロールのホスト名の形式を使用します。
$ ls Controller/overcloud-controller-0
deploy_steps_playbook.yaml
の Ansible タスクはタグ付けされます。タグの全リストを確認するには、ansible-playbook
で CLI オプション--list-tags
を使用します。$ ansible-playbook -i tripleo-ansible-inventory.yaml --list-tags deploy_steps_playbook.yaml
次に、
ansible-playbook-command.sh
スクリプトで--tags
、--skip-tags
、--start-at-task
のいずれかを使用して、タグ付けした設定を適用します。$ ansible-playbook \ -i inventory.yaml \ -e gather_facts=true \ -e @global_vars.yaml \ --private-key ~/.ssh/id_rsa \ --become \ --tags overcloud \ ~/config-download/deploy_steps_playbook.yaml
オーバークラウドに対して
config-download
Playbook を実行すると、それぞれのホストの SSH フィンガープリントに関するメッセージが表示される場合があります。これらのメッセージを回避するには、--ssh-common-args="-o StrictHostKeyChecking=no"
をansible-playbook
コマンドに追加します。$ ansible-playbook \ -i inventory.yaml \ -e gather_facts=true \ -e @global_vars.yaml \ --private-key ~/.ssh/id_rsa \ --ssh-common-args="-o StrictHostKeyChecking=no" \ --become \ --tags overcloud \ ~/config-download/deploy_steps_playbook.yaml