13.9. ansible-playbook-command.sh スクリプトを使用した config-download の実行
標準の方式または個別のプロビジョニングおよび設定プロセスを使用してオーバークラウドをデプロイすると、director は /var/lib/mistral/
に作業ディレクトリーを生成します。このディレクトリーには、設定プロセスを再度実行するのに必要な Playbook およびスクリプトが含まれています。
前提条件
以下の方式のいずれかでデプロイされたオーバークラウド
- プロビジョニングプロセスと設定プロセスをまとめて実施する標準の方式
- プロビジョニングプロセスと設定プロセスを分離する方式
手順
-
アンダークラウドホストに
stack
ユーザーとしてログインします。 Ansible Playbook のディレクトリーに移動します。
$ cd /var/lib/mistral/overcloud/
/var/lib/mistral/.ssh
ディレクトリーの所有者をstack
ユーザーに変更します。$ sudo chown stack. -R /var/lib/mistral/.ssh/
ansible-playbook-command.sh
コマンドを実行して、オーバークラウドの設定を実行します。$ sudo ./ansible-playbook-command.sh
/var/lib/mistral/.ssh
ディレクトリーの所有者をmistral
ユーザーに変更します。これは、mistral_executor
コンテナー内で実行されている ansible-playbook コマンドが正常に実行されるようにするために必要です。$ sudo chown 42430:42430 -R /var/lib/mistral/.ssh/
mistral
ユーザーとしてスクリプトを再実行します。このスクリプトには追加の Ansible 引数を渡すことができ、それらの引数は、そのまま
ansible-playbook
コマンドに渡されます。つまり、チェックモード (--check
)、ホストの限定 (--limit
)、変数のオーバーライド (-e
) など、他の Ansible 機能を使用することができます。以下に例を示します。$ ./ansible-playbook-command.sh --limit Controller
警告--limit
を使用して大規模にデプロイする場合、実行に含まれるホストのみがノード全体の SSHknown_hosts
ファイルに追加されます。したがって、ライブマイグレーションなどの一部の操作は、known_hosts
ファイルにないノード間では機能しない場合があります。注記すべてのノードで
/etc/hosts
ファイルが最新であることを確認するには、root
ユーザーとして次のコマンドを実行します。(undercloud)$ sudo -i (undercloud)$ cd /var/lib/mistral/overcloud (undercloud)$ ANSIBLE_REMOTE_USER="tripleo-admin" ansible allovercloud \ -i tripleo-ansible-inventory.yaml \ -m include_role \ -a name=tripleo-hosts-entries \ -e @global_vars.yaml
- 設定プロセスが完了するまで待ちます。
関連情報
作業ディレクトリーには、オーバークラウドの設定タスクを管理する
deploy_steps_playbook.yaml
という名前の Playbook が含まれています。この Playbook を表示するには、以下のコマンドを実行します。$ less deploy_steps_playbook.yaml
Playbook は、作業ディレクトリーに含まれているさまざまなタスクファイルを使用します。タスクファイルには、OpenStack Platform の全ロールに共通するものと、特定の OpenStack Platform ロールおよびサーバー固有のものがあります。
作業ディレクトリーには、オーバークラウドの
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-command.sh --tags overcloud
オーバークラウドに対して
config-download
Playbook を実行すると、それぞれのホストの SSH フィンガープリントに関するメッセージが表示される場合があります。これらのメッセージを回避するには、ansible-playbook-command.sh
スクリプトの実行時に、--ssh-common-args="-o StrictHostKeyChecking=no"
を追加します。$ ./ansible-playbook-command.sh --tags overcloud --ssh-common-args="-o StrictHostKeyChecking=no"