第3章 デプロイメント
以下の手順では、Ansible を使用してインスタンス HA を有効にします。Ansible の詳細は、Ansible ドキュメント を参照してください。
3.1. 必要な Ansible 設定ファイルの作成 リンクのコピーリンクがクリップボードにコピーされました!
Ansible を使用してインスタンス HA を有効にするには、インベントリーファイル と SSH 引数ファイル が必要です。どちらのファイルも、オーバークラウドにインスタンス HA を実装するために必要な Ansible 変数を渡します。
インベントリーファイル
インベントリーファイルは、ansible Playbook のさまざまなターゲットホストを一覧表示します。これは、各ノードを(名前別に)一覧表示する最初のセクションと、Ansible が Playbook の各コマンドに使用するホスト名、ユーザー名、および秘密鍵ファイルの 2 つのセクションに分けられます。以下に例を示します。
overcloud-controller-0 ansible_host=overcloud-controller-0 ansible_user=heat-admin ansible_private_key_file=/home/stack/.ssh/id_rsa
2 番目のセクションには、compute、undercloud、overcloud、または controller の見出しの下に各 ノードが一覧表示されます(またはノード種別)。
/home/stack/hosts という名前のインベントリーファイルを作成します。以下のサンプルは、これに必要な構文を示しています。
undercloud ansible_host=undercloud ansible_user=stack ansible_private_key_file=/home/stack/.ssh/id_rsa
overcloud-compute-1 ansible_host=overcloud-compute-1 ansible_user=heat-admin ansible_private_key_file=/home/stack/.ssh/id_rsa
overcloud-compute-0 ansible_host=overcloud-compute-0 ansible_user=heat-admin ansible_private_key_file=/home/stack/.ssh/id_rsa
overcloud-controller-2 ansible_host=overcloud-controller-2 ansible_user=heat-admin ansible_private_key_file=/home/stack/.ssh/id_rsa
overcloud-controller-1 ansible_host=overcloud-controller-1 ansible_user=heat-admin ansible_private_key_file=/home/stack/.ssh/id_rsa
overcloud-controller-0 ansible_host=overcloud-controller-0 ansible_user=heat-admin ansible_private_key_file=/home/stack/.ssh/id_rsa
[compute]
overcloud-compute-1
overcloud-compute-0
[undercloud]
undercloud
[overcloud]
overcloud-compute-1
overcloud-compute-0
overcloud-controller-2
overcloud-controller-1
overcloud-controller-0
[controller]
overcloud-controller-2
overcloud-controller-1
overcloud-controller-0
アンダークラウドおよびオーバークラウド内の全ホストのインベントリーをすべて生成するには、以下のコマンドを実行します。
stack@director $ tripleo-ansible-inventory --list
このコマンドは、詳細で更新されたインベントリーを JSON 形式で生成します。詳細は、Running Ansible Automation を参照してください。
SSH 引数ファイル
SSH 引数ファイルは、各ターゲットホストで Playbook を実行するために必要な認証情報および認証設定を Ansible に渡します。
以下のコマンドを使用して、SSH 引数ファイルを作成します( /home/stackからの)。
stack@director $ cat /home/stack/.ssh/id_rsa.pub >> /home/stack/.ssh/authorized_keys
stack@director $ echo -e "Host undercloud\n Hostname 127.0.0.1\n IdentityFile /home/stack/.ssh/id_rsa\n User stack\n StrictHostKeyChecking no\n UserKnownHostsFile=/dev/null\n" > ssh.config.ansible
stack@director $ source /home/stack/stackrc
stack@director $ openstack server list -c Name -c Networks | awk '/ctlplane/ {print $2, $4}' | sed s/ctlplane=//g | while read node; do node_name=$(echo $node | cut -f 1 -d " "); node_ip=$(echo $node | cut -f 2 -d " "); echo -e "Host $node_name\n Hostname $node_ip\n IdentityFile /home/stack/.ssh/id_rsa\n User heat-admin\n StrictHostKeyChecking no\n UserKnownHostsFile=/dev/null\n"; done >> ssh.config.ansible
これらのコマンドにより、/home/stack/ssh.config.ansible という名前の SSH 引数ファイルが作成されます。このファイルには、各オーバークラウドノードのホスト固有の接続オプションが含まれます。以下に例を示します。
Host overcloud-controller-0
Hostname 192.168.24.11
IdentityFile /home/stack/.ssh/id_rsa
User heat-admin
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null