12.5. 動的インベントリースクリプトの実行

director を使用すると、Ansible ベースの自動化をご自分の Red Hat OpenStack Platform (RHOSP) 環境で実行することができます。director は、tripleo-ansible-inventory コマンドを使用して、環境内にノードの動的インベントリーを生成します。

手順

  1. ノードの動的インベントリーを表示するには、stackrc を読み込んだ後に tripleo-ansible-inventory コマンドを実行します。

    $ source ~/stackrc
    (undercloud) $ tripleo-ansible-inventory --list

    --list オプションを使用すると、全ホストの詳細が返されます。このコマンドにより、動的インベントリーが JSON 形式で出力されます。

    {"overcloud": {"children": ["controller", "compute"], "vars": {"ansible_ssh_user": "heat-admin"}}, "controller": ["192.168.24.2"], "undercloud": {"hosts": ["localhost"], "vars": {"overcloud_horizon_url": "http://192.168.24.4:80/dashboard", "overcloud_admin_password": "abcdefghijklm12345678", "ansible_connection": "local"}}, "compute": ["192.168.24.3"]}
  2. お使いの環境で Ansible のPlaybookを実行するには、ansible コマンドを実行し、-i オプションを使用して動的インベントリーツールの完全パスを追加します。以下に例を示します。

    (undercloud) $ ansible [HOSTS] -i /bin/tripleo-ansible-inventory [OTHER OPTIONS]
    • [HOSTS] を使用するホストの種別に置き換えてください。

      • 全コントローラーノードの場合には controller
      • 全コンピュートノードの場合には compute
      • オーバークラウドの全子ノードの場合には overcloud(たとえば、コントローラー ノードおよび コンピュート ノードの場合)
      • アンダークラウドの場合には undercloud
      • 全ノードの場合には "*"
    • [OTHER OPTIONS] を追加の Ansible オプションに置き換えてください。

      • ホストキーの確認を省略するには、--ssh-extra-args='-o StrictHostKeyChecking=no' オプションを使用します。
      • Ansible の自動化を実行する SSH ユーザーを変更するには、-u [USER] オプションを使用します。オーバークラウドのデフォルトの SSH ユーザーは、動的インベントリーの ansible_ssh_user パラメーターで自動的に定義されます。-u オプションは、このパラメーターより優先されます。
      • 特定の Ansible モジュールを使用するには、-m [MODULE] オプションを使用します。デフォルトは command で Linux コマンドを実行します。
      • 選択したモジュールの引数を定義するには、-a [MODULE_ARGS] オプションを使用します。
重要

オーバークラウドのカスタム Ansible 自動化は、標準のオーバークラウドスタックの一部ではありません。この後に openstack overcloud deploy コマンドを実行すると、オーバークラウドノード上の OpenStack Platform サービスに対する Ansible ベースの設定を上書きする可能性があります。