Menu Close

13.10. 手動で作成した Playbook を使用した config-download の実行

標準のワークフローとは別に、専用の config-download ファイルを作成することができます。たとえば、--stack-only オプションを指定して openstack overcloud deploy コマンドを実行し、ノードをプロビジョニングしてから、別途 Ansible 設定を手動で適用することができます。

前提条件

  • アンダークラウドの正常なインストール。
  • デプロイ可能なオーバークラウドノード
  • 実際のオーバークラウドカスタマイズに該当する Heat 環境ファイル

手順

  1. アンダークラウドホストに stack ユーザーとしてログインします。
  2. stackrc ファイルを取得します。

    $ source ~/stackrc
  3. --stack-only オプションを指定してデプロイメントコマンドを実行します。オーバークラウドに必要なすべての環境ファイルを追加します。

    $ openstack overcloud deploy \
      --templates \
      -e environment-file1.yaml \
      -e environment-file2.yaml \
      ...
      --stack-only
  4. プロビジョニングプロセスが完了するまで待ちます。
  5. tripleo-admin ユーザーによるアンダークラウドからオーバークラウドへの SSH アクセスを有効にします。config-download プロセスでは、tripleo-admin ユーザーを使用して Ansible ベースの設定を実施します。

    $ openstack overcloud admin authorize
  6. config-download ファイルを生成します。

    $ openstack overcloud config download \
      --name overcloud \
      --config-dir ~/config-download
    • --name は、Ansible ファイルのエクスポートに使用するオーバークラウドの名前です。
    • --config-dir は、config-download ファイルを保存する場所です。
  7. config-download ファイルが含まれるディレクトリーに移動します。

    $ cd ~/config-download
  8. 静的なインベントリーファイルを生成します。

    $ tripleo-ansible-inventory \
      --stack <overcloud> \
      --ansible_ssh_user heat-admin \
      --static-yaml-inventory inventory.yaml

    <overcloud> を実際のオーバークラウドの名前に置き換えてください。

  9. config-download ファイルおよび静的なインベントリーファイルを使用して、設定を実施します。デプロイメント用の Playbook を実行するには、ansible-playbook コマンドを実行します。

    $ ansible-playbook \
      -i inventory.yaml \
      --private-key ~/.ssh/id_rsa \
      --become \
      ~/config-download/deploy_steps_playbook.yaml
  10. 設定プロセスが完了するまで待ちます。
  11. この設定から手動で overcloudrc ファイルを生成するには、以下のコマンドを実行します。

    $ openstack action execution run \
      --save-result \
      --run-sync \
      tripleo.deployment.overcloudrc \
      '{"container":"overcloud"}' \
      | jq -r '.["result"]["overcloudrc.v3"]' > overcloudrc.v3
  12. デプロイメントステータスを手動で 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 \
      --private-key ~/.ssh/id_rsa \
      --become \
      --tags overcloud \
      ~/config-download/deploy_steps_playbook.yaml
    1. オーバークラウドに対して config-download Playbook を実行すると、それぞれのホストの SSH フィンガープリントに関するメッセージが表示される場合があります。これらのメッセージを回避するには、--ssh-common-args="-o StrictHostKeyChecking=no"ansible-playbook コマンドに追加します。

      $ ansible-playbook \
        -i inventory.yaml \
        --private-key ~/.ssh/id_rsa \
        --ssh-common-args="-o StrictHostKeyChecking=no" \
        --become \
        --tags overcloud \
        ~/config-download/deploy_steps_playbook.yaml