Documentation

13. インベントリー

Inventory (インベントリー) は、ジョブを起動できるホストのコレクションです (Ansible インベントリーファイルと同様)。インベントリーはグループに分類され、それらのグループには実際のホストが含まれます。グループは、ホスト名を Tower に入力して手動で取得することも、Ansible Tower のサポートされるクラウドプロバイダーから取得することもできます。

注釈

カスタム動的インベントリースクリプト、または Tower でネイティブにサポートされていないクラウドプロバイダーがある場合、それを Tower にインポートすることもできます。Tower Administration Guide を参照してください。

このタブには、現在利用できるインベントリーの一覧が表示されます。インベントリーの一覧は、名前タイプ、または 組織 で並べ替え、検索できます。

Inventories - home with examples

インベントリーの詳細の一覧には、以下が含まれます。

  • インベントリー同期 (sync-button): 緑はインベントリーの同期が成功したことを示し、赤は同期が失敗したことを示します。このアイコンをクリックすると、インベントリーに同期できるソースがある場合、直近の 5 回のインベントリーソースの同期ステータスとソース情報が表示されます。
_images/inventories-home-with-status.png
  • Status Dot (ステータスを示す丸い点): このインベントリーの最近のジョブのステータスを表示します。
  • 名前: インベントリー名。インベントリー名をクリックすると、選択したインベントリーのプロパティー画面に移動します。ここでは、インベントリーのグループおよびホストが表示されます (このビューは edit button アイコンからアクセスすることもできます)。
  • タイプ: これが標準インベントリーか、またはスマートインベントリーであるかどうかを特定します。

  • 組織: インベントリーが属する組織。

  • アクション: 以下のアクションを選択したインベントリーについて実行できます。

    • 編集: 選択したインベントリーのプロパティーを編集します。
    • 削除: 選択したインベントリーを削除します。この操作は取り消すことができません!

13.1. スマートインベントリー

スマートインベントリーは、保存された検索で定義されるホストのコレクションであり、標準インベントリーのように表示し、ジョブ実行で簡単に使用することができます。組織管理者には、それぞれの組織内のインベントリーへの管理者パーミッションがあり、スマートインベントリーを作成できます。スマートインベントリーは KIND=smart で特定されます。スマートインベントリーは、Tower 検索で使用されるのと同じ方法で定義できます。InventorySource はインベントリーに直接関連付けられます。

Inventory モデルには、デフォルトで空白にされる以下の新規フィールドがありますが、スマートインベントリーについては以下のように設定されます。

  • スマートインベントリーの場合、 kindsmart に設定
  • スマートインベントリーの場合、host_filter が設定され、kindsmart に設定される

host モデルには新規フィールド smart_inventories があり、このフィールドではホストが関連付けられているすべてのスマートインベントリーのセットを特定するメンバーシップルックアップテーブルを使用します。メンバーシップはタスク別に生成されます。タスクは以下の場合に起動します。

  • 新規ホストが追加される
  • 既存ホストが変更される (更新または削除される)
  • 新規スマートインベントリーが追加される
  • 既存スマートインベントリーが変更される (更新または削除される)

注釈

update_host_smart_inventory_memberships タスクは、AWX_REBUILD_SMART_MEMBERSHIP が True に設定されている場合にのみ実行されます (デフォルトは False)。

実際のインベントリーは、編集可能にせずに表示することができます。

  • ホストおよびグループの名前はインベントリーソースの同期の結果として作成されます。
  • グループのレコードは編集したり、移動したりすることはできません。

通常のインベントリーと同様に、スマートインベントリーのホストエンドポイント (/inventories/N/hosts/) からホストを作成することはできません。スマートインベントリーの管理者には、名前、説明、変数および削除機能などのフィールドを編集するパーミッションがありますが、host_filter を変更するパーミッションはありません。これを変更すると、(別のインベントリー内にプライマリーメンバーシップを有する) ホストの中のどのホストがスマートインベントリーに組み込まれるかに影響があるためです。host_filter はスマートインベントリーの組織内のインベントリーに含まれるホストのみに適用されることに注意してください。

host_filter を変更するには、インベントリーの組織の組織管理者である必要があります。組織管理者には組織内のすべてのインベントリーへの暗黙的な「管理」アクセスをすでに有しているため、組織管理者が有していないパーミッションが必要になることはありません。

スマートインベントリーの管理者は、(組織の管理者ではない) 他のユーザーに対し、スマートインベントリーへの「使用」や「アドホック」などのパーミッションを付与することができ、これらのパーミッションは、他の標準インベントリーの場合と同様にロールが示唆する各種アクションを許可します。ただし、これにより、これらの管理者に (異なるインベントリーにある) ホストへの特別なパーミッションが付与される訳ではありません。それらの管理者は、スマートインベントリーホストの一覧でホストを閲覧できますが、ホストの直接の読み取りパーミッションが付与される訳ではなく、/#/hosts/ で追加のホストを確認できる訳でもありません。

ある状況では、以下を変更することができます。

  • インベントリーソースを使ってインベントリーで手動で作成された新規ホスト
  • インベントリーソースの同期の結果として作成されたグループ
  • 変更可能なホストおよびグループの変数

スマートインベントリーに関連付けられたホストは表示される際に明示されます。スマートインベントリーの結果に同じホスト名を持つ複数のホストが含まれる場合、一致するホストの 1 つのみがスマートインベントリーの一部として組み込まれ、ホスト ID 別に並べ替えられます。

13.2. 新規インベントリーの追加

新規インベントリーまたはスマートインベントリーを作成するには、以下を実行します。

  1. add-options ボタンをクリックし、作成するインベントリーのタイプを選択します。

インベントリーのタイプは、ラベルや作成フォームの先頭にあるタブの行で識別できます。

Inventories_create_new - create new inventory

  1. 以下のフィールドに該当する詳細を入力します。
  • 名前: このインベントリーに適した名前を入力します。

  • 説明: 任意の説明を入力します (オプション)。

  • 組織: 必須。利用可能な組織から選択します。

  • スマートホストフィルター: (スマートインベントリーのみに適用) search ボタンをクリックして別個の動的ホストウィンドウを開き、このインベントリーのホストをフィルターします。これらのオプションは、選択した組織に基づくものです。

    _images/inventories-create-new-inventory-dynamic-hosts.png

    フィルターは、該当の名前を含むホストをフィルターするためにタグを使用する点でタグに似ています。フィルターでは、大文字と小文字が区別されます。詳細は、スマートホストフィルター セクションを参照してください。

  • Insights 認証情報: (標準インベントリーのみに適用) インベントリーが Insights と共に使用されている場合には、Insights の認証情報を入力します。

  • インスタンスグループ: search ボタンをクリックして別個のウィンドウを開きます。このインベントリーの実行に使用するインスタンスグループを選択します。一覧に多くのオプションが含まれる場合、検索を使用してオプションの範囲を絞ります。

  • 変数: このインベントリーのすべてのホストに適用される変数の定義および値。JSON または YAML 構文を使用して変数を入力します。ラジオボタンを使用してこれら 2 つの間の切り替えを行います。

Inventories_create_new_saved - create new inventory

  1. 完了したら 保存 をクリックします。

Tower で新規インベントリーが保存された後に、パーミッション、グループ、ホスト、ソースの設定や、完了したジョブの表示に進みます (インベントリーのタイプに応じて適用可能な場合)。詳細の説明については、後続のセクションを参照してください。

13.2.1. パーミッションの追加

パーミッション タブでは、ユーザーおよびチームメンバーに関連付けられたパーミッションの確認、付与、編集および削除を実行できます。このリソースについて特定ユーザーにパーミッションを割り当てるには以下を行います。

  1. パーミッション タブをクリックします。
  2. add ボタンをクリックして、ユーザー/チームの追加ウィンドウを開きます。
Add Permissions Form
  1. アクセス権を持ち、特定のロールを割り当てるユーザーまたはチームを指定します。
  1. クリックして、ユーザーまたはチームの名前の横にある 1 つまたは複数のチェックボックスを選択してこれらを選択します。

注釈

ユーザーチーム タブ間を保存せずに切り換えることで、複数のユーザーとチームを同時に選択することができます。

選択を終えると、ウィンドウが展開され、ドロップダウンメニューの一覧から選択した各ユーザーまたはチームのロールを選択できるようになります。

Roles Assignment for Selected Users

上記の例では、インベントリーに関連付けられたオプションが表示されます。リソースごとに利用できるオプションが異なります。

  • 管理者: 権限の読み取り、実行および編集を許可します (すべてのリソースに適用)。
  • 使用: ジョブテンプレートのリソースの使用を許可します (ジョブテンプレート以外の全リソースに適用)。
  • 更新: SCM 更新でのプロジェクトの更新を許可します (プロジェクトおよびインベントリーに適用)。
  • アドホック: アドホックコマンドの使用を許可します (インベントリーに適用)。
  • 実行: ジョブテンプレートの起動を許可します (ジョブテンプレートに適用)。

ちなみに

ロールの選択ペインの キー ボタンを使用して、各ロールの説明を表示します。

  1. 選択したユーザーまたはチームに適用するロールを選択します。

注釈

ユーザーチーム タブ間を保存せずに切り換えることで、複数のユーザーとチームにロールを割り当てることができます。
Add Permissions - Examples of users and teams selected
  1. 各ユーザーとチームのロールの割り当てを確認します。
Add Permissions - Examples of roles applied
  1. 完了したら 保存 をクリックすると、ユーザー/チームの追加ウィンドウが閉じ、各ユーザーやチームに割り当てられた更新済みのロールが表示されます。

    Permissions tab with Role Assignments

特定ユーザーのパーミッションを削除するには、そのリソースの横にある「関連付けの解除」 (x) ボタンをクリックします。

_images/permissions-disassociate.png

これにより確認ダイアログが起動し、関連付けの解除の確認が求められます。

_images/permissions-disassociate-confirm.png

13.2.2. グループの追加

インベントリーは、ホストおよび他のグループか、またはホストが含まれるグループに分類されます。グループは標準インベントリーのみに適用され、スマートインベントリーから直接設定することはできません。既存グループは、標準インベントリーで使用されるホストに関連付けることができます。標準インベントリーで選択可能なアクションには以下が含まれます。

  • 新規グループの作成
  • 新規ホストの作成
  • 選択したインベントリーでのコマンドの実行
  • インベントリープロパティーの編集
  • グループおよびホストのアクティビティーストリームの表示
  • インベントリーの構築に関するヘルプの取得

注釈

Ansible Tower 3.2 より、インベントリーソースはグループに関連付けられなくなりました。これ以前のバージョンでは、生成されるグループやホストはインベントリーソースグループの子となりました。現在、生成されるグループは最上位に置かれます。これらのグループには子グループを持たせることができ、これらの生成されるすべてのグループにホストを含めることができます。

インベントリーの新規グループを作成するには、以下を実行します。

  1. add group button ボタンをクリックして グループの作成 ウィンドウを開きます。

Inventories_manage_group_add

  1. 必須およびオプションのフィールドに該当する詳細を入力します。
  • 名前: 必須
  • 説明: 任意の説明を入力します (オプション)。
  • 変数: このグループのすべてのホストに適用される定義および値を入力します。JSON または YAML 構文のいずれかを使用して変数を入力します。ラジオボタンを使用してこれら 2 つの間の切り替えを行います。
  1. 完了したら、保存 をクリックします。

13.2.2.1. グループ内でのグループの追加

グループ内にグループを追加するには、以下を実行します。

  1. グループ タブをクリックします。
  2. add options groups ボタンをクリックして、設定にすでに存在するグループを追加するか、または新規グループを作成するかどうかを選択します。
  1. 新規グループを作成する場合、該当する詳細情報を必須およびオプションフィールドに入力します。
  • 名前: 必須
  • 説明: 任意の説明を入力します (オプション)。
  • 変数: このグループのすべてのホストに適用される定義および値を入力します。JSON または YAML 構文のいずれかを使用して変数を入力します。ラジオボタンを使用してこれら 2 つの間の切り替えを行います。
  1. 完了したら、保存 をクリックします。

グループの作成 ウィンドウが閉じ、新規に作成されたグループが、元のグループに関連付けられたグループの一覧のエントリーとして表示されます。

Inventories add group subgroup

既存グループを追加する選択をした場合、選択可能なグループが別個の選択ウィンドウに表示されます。

Inventories add group existing subgroup

グループが選択されると、グループに関連付けられたグループの一覧のエントリーとして表示されます。

  1. サブグループの下に追加のグループおよびホストを設定するには、グループの一覧からサブグループの名前をクリックし、このセクションの説明にある同じ手順を繰り返します。

Inventories add group subgroup emphasized

13.2.3. ホストの追加

ホストをインベントリー、グループおよびグループ内のグループ用に設定することができます。ホストを設定するには、以下を実行します。

  1. ホスト タブをクリックします。
  2. add options groups ボタンをクリックして、設定にすでに存在するホストを追加するか、または新規ホストを作成するかどうかを選択します。
  1. 新規ホストを作成する場合は、toggle button ボタンを選択して、ジョブの実行中にこのホストを組み込むかどうかを指定します。
  1. 必須およびオプションのフィールドに該当する詳細を入力します。
  • ホスト名: 必須
  • 説明: 任意の説明を入力します (オプション)。
  • 変数: このグループのすべてのホストに適用される定義および値を入力します。JSON または YAML 構文のいずれかを使用して変数を入力します。ラジオボタンを使用してこれら 2 つの間の切り替えを行います。
  1. 完了したら、保存 をクリックします。

ホストの作成 ウィンドウが閉じ、新規に作成されたホストが、元のグループに関連付けられたホストの一覧のエントリーとして表示されます。

Inventories add group host

既存ホストを追加する選択をした場合、選択可能なホストが別個の選択ウィンドウに表示されます。

Inventories add existing host

ホストが選択されると、そのホストがグループに関連付けられたホストの一覧のエントリーとして表示されます。

  1. ホストのファクトおよび追加グループを設定するには、ホストの一覧からホストの名前をクリックします。

Inventories add group host emphasized

これにより、選択したホストの「詳細」タブが開きます。

Inventories add group host details

  1. ファクト タブをクリックして、収集するファクトを入力します。ファクトについて詳しくは、ファクトのキャッシング セクションを参照してください。
  2. グループ タブをクリックして、ホストのグループを設定します。
  1. associate group ボタンをクリックして、ホストを既存グループに関連付けます。

選択可能なグループが別個の選択ウィンドウに表示されます。

_images/inventories-add-group-hosts-add-groups.png
  1. クリックして、ホストに関連付けるグループを選択し、保存 をクリックします。

グループが関連付けられると、そのグループがホストに関連付けられたグループの一覧にエントリーとして表示されます。

13.2.4. ソースの追加

インベントリーソースはグループに関連付けられなくなりました。Ansible Tower 3.2 より前のバージョンでは、生成されるグループやホストはインベントリーソースグループの子となりました。現在、生成されるグループは最上位に置かれます。これらのグループには子グループを持たせることができ、これらの生成されるすべてのグループにホストを含めることができます。

ソースのインベントリーへの追加は、標準インベントリーのみに適用されます。スマートインベントリーの場合、それらが関連付けられている標準インベントリーからソースを継承します。インベントリーのソースを設定するには、以下を実行します。

  1. ソースを追加するインベントリーで、ソース タブをクリックします。
  2. add source ボタンをクリックします。

これにより、「ソースの作成」ウィンドウが開きます。

Inventories create source

  1. 必須およびオプションのフィールドに該当する詳細を入力します。
  • 名前: 必須
  • 説明: 任意の説明を入力します (オプション)。
  • ソース: ホストを入力できる認証情報タイプと一致するソースを選択します。それぞれのソースや適切な情報を入力する方法についての詳細は、認証情報ソース セクションを参照してください。

注釈

Ansible Tower バージョン 3.2 より、Rackspace クラウドサーバーのサポートは中止されました。

  1. インベントリーソースの更新ジョブの出力レベルは、詳細 ドロップダウンメニューから適切なオプションを選択して設定できます。
  2. すべてのクラウドインベントリーソースには、以下の更新オプションがあります。
  • 上書き: 詳細は、画面上のヒント (tooltip) を参照してください。3.2 の移行後の動作の一貫性を確保するには、True に設定しないようにします。
  • 変数の上書き: 詳細は、画面上のヒント (tooltip) を参照してください。
  • 起動時の更新: このインベントリーを使用してジョブを実行するたびに、ジョブタスクの実行前に選択したソースからインベントリーの更新が実行されます。ジョブの生成速度がインベントリーの同期速度を上回る場合のジョブのオーバーフローを避けるために、これを選択して、特定の期間 (秒単位) 以前のインベントリーの同期をキャッシュするようキャッシュタイムアウトを設定できます。

「起動時の更新」の設定は、プロジェクトおよびインベントリーの依存関係システムを参照しますが、とくに 2 つのジョブが同時に実行されないようにする訳ではありません。キャッシュのタイムアウトが指定される場合には、2 番目のジョブの依存関係が作成され、最初のジョブが生成したプロジェクトおよびインベントリーの更新が使用されます。それらの両方のジョブがプロジェクトおよび/またはインベントリーの更新の終了を待機し、次に進みます。これらが異なるジョブテンプレートを使用する場合、システムの容量がある場合にはそれらを同時に開始し、実行することができます。

注釈

Tower のプロビジョニングコールバック機能を動的インベントリーソースと共に使用する場合、「起動時の更新」をインベントリーグループに対して設定する必要があります。

  1. 実行後にエントリーおよび選択を確認し、保存 をクリックします。

ソースが定義されると、インベントリーに関連付けられたソースの一覧のエントリーとして表示されます。ソース タブから、単一ソースに対して同期を実行することも、1 度にすべての同期を実行することもできます。また、同期プロセスのスケジュールやソースの編集または削除など、追加のアクションを実行することもできます。

Inventories view sources

  1. ソースの通知を設定するには、通知 タブをクリックします。
  1. 通知がすでに設定されている場合は、通知の設定を選択します。
  2. 通知が設定されていない場合、通知 で詳細を確認してください。

13.2.5. 完了したジョブの表示

インベントリーがジョブの実行に使用されている場合、それらのジョブの詳細は、インベントリーの 完了したジョブ タブで確認できます。

Inventories view completed jobs

13.2.5.1. スマートホストフィルター

インベントリーのホストを設定する際に検索フィルターを使用できます。ファクトの検索機能を使用するこの機能は Ansible Tower 3.2 で導入されました。

use_fact_cache=True がジョブテンプレートごとに設定されている場合、ジョブテンプレートの実行時に Ansible Playbook で生成されるファクトは、Tower によってデータベースに保存されます。新規ファクトは既存ファクトにマージされ、ホストごとに設定されます。これらの保存されるファクトは、GET クエリーパラメーター host_filter を使用し、/api/v2/hosts エンドポイント経由でホストをフィルターする際に使用できます。例: /api/v2/hosts?host_filter=ansible_facts__ansible_processor_vcpus=8

host_filter パラメーターは以下を許可します。

  • () でのグループ化
  • ブール値および演算子の使用:
    • __: 関連付けられたフィールドの関連フィールドを参照します。
    • __: JSON キーパスでキーを分離するために ansible_facts で使用されます。
    • []: パスの指定で json アレイを表すために使用されます。
    • "": 値にスペースが必要な場合、その値に使用されます。
  • 「標準的な」Django クエリーを host_filter に組み込むことができる

例:

/api/v2/hosts/?host_filter=name=localhost
/api/v2/hosts/?host_filter=ansible_facts__ansible_date_time__weekday_number="3"
/api/v2/hosts/?host_filter=ansible_facts__ansible_processor[]="GenuineIntel"
/api/v2/hosts/?host_filter=ansible_facts__ansible_lo__ipv6[]__scope="host"
/api/v2/hosts/?host_filter=ansible_facts__ansible_processor_vcpus=8
/api/v2/hosts/?host_filter=ansible_facts__ansible_env__PYTHONUNBUFFERED="true"
/api/v2/hosts/?host_filter=(name=localhost or name=database) and (groups__name=east or groups__name="west coast") and ansible_facts__an

13.2.5.2. 認証情報ソース

ホストを入力できる認証情報タイプに一致するソースを選択します。

13.2.5.2.1. ソース: プロジェクト

プロジェクトから取得されるインベントリーは、それが関連付けられているプロジェクトの SCM タイプを使用します。たとえば、プロジェクトのソースが GitHub にあるか、または Red Hat Insights プロジェクトである場合、インベントリーは同じソースを使用します。

  1. プロジェクトから取得されるインベントリーを設定するには、「ソース」フィールドから ソース: プロジェクト を選択します。
  2. 「ソースの作成」ウィンドウは追加フィールドと共に展開されます。以下の詳細を入力します。
  • 認証情報: このソースに使用する認証情報を指定します。
  • プロジェクト: 必須。このインベントリーがソースとして使用しているプロジェクトを指定します。search ボタンをクリックしてプロジェクトの一覧から選択します。一覧に多くのオプションが含まれる場合、検索を使用してオプションの範囲を絞ります。
  • インベントリーファイル: 必須。取得されたプロジェクトに関連付けられたインベントリーファイルを選択します。
  1. クラウドインベントリーソースで選択できる更新オプションのほかに、プロジェクトの変更時に更新するかどうかを指定できます。プロジェクト変更時の更新 オプションにチェックを付けて、SCM リビジョンが変更されるプロジェクトの毎回の更新後に、選択されたソースのインベントリーを更新してからジョブのタスクを実行します。
  2. カスタムインベントリースクリプトに渡すには、オプションで 環境変数 フィールドに環境変数を設定できます。

Inventories - create source - sourced from project example

13.2.5.2.2. Amazon Web Services EC2
  1. AWS EC2 から取得されるインベントリーを設定するには、「ソース」フィールドから ソース: プロジェクト を選択します。
  2. 「ソースの作成」ウィンドウは追加フィールドと共に展開されます。以下の詳細を入力します。
  • 認証情報: 既存の認証情報から選択します (詳細は、認証情報 を参照してください)。

    Tower が割り当てられた IAM ロールを使って EC2 インスタンスで実行されている場合は、認証情報を省略でき、インスタンスメタデータのセキュリティー認証情報が代わりに使用されます。IAM ロールの使用についての詳細は、IAM_Roles_for_Amazon_EC2_documentation_at_Amazon <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam- roles-for-amazon-ec2.html> _を参照してください。

  • リージョン: リージョンフィールドをクリックして、クラウドプロバイダーのリージョンの一覧を表示します。複数のリージョンを選択するか、または「すべて」を選択してすべてのリージョンを組み込むことができます。Tower は選択されたリージョンに関連付けられたホストの場合にのみ更新されます。

  • インスタンスフィルター: Amazon EC2 インベントリー全体をインポートする代わりに、各種のメタデータに基づいてインベントリースクリプトで返されるインスタンスをフィルターします。ホストがここに入力されるフィルターのいずれかに一致する場合にインポートされます。

例:

  • タグ TowerManaged を持つホストに制限するには、tag-key=TowerManaged を入力します。
  • キー名 staging または production のいずれかを使用するホストに制限するには、key-name=staging, key-name=production を入力します。
  • Name タグが test で開始するホストに制限するには、tag:Name=test* を入力します。

ここで使用できるフィルターについての詳細は、Amazon の Describe Instances <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html> _ドキュメントを参照してください。

  • グループ化のみ: デフォルトで、Tower は以下の Amazon EC2 パラメーターに基づいてグループを作成します。

    • アベイラビリティーゾーン
    • イメージ ID
    • インスタンス ID
    • インスタンスタイプ
    • キー名
    • リージョン
    • セキュリティーグループ
    • タグ (名前別)
    • VPC ID
    • タグ None

    これらすべてのグループを作成する必要がない場合、デフォルトで作成する必要のあるグループの一覧をドロップダウンから選択します。さらに インスタンス ID を選択し、インスタンスのインスタンス ID に基づいてグループを作成することもできます。

  1. ソース変数 フィールドを使用して、ec2.ini にあり、インベントリー更新スクリプトで使用される変数を上書きします。JSON または YAML 構文のいずれかを使用して変数を入力します。ラジオボタンを使用してこれら 2 つの間の切り替えを行います。これらの変数についての詳細は、Ansible GitHub リポジトリーの ec2.ini <https://github.com/ansible/ansible/blob/devel/contrib/inventory/ec2.ini> __を参照してください。

Inventories - create source - AWS EC2 example

13.2.5.2.3. Google Compute Engine
  1. Google から取得されるインベントリーを設定するには、「ソース」フィールドから Google Compute Engine を選択します。
  2. 「ソースの作成」ウィンドウは追加フィールドと共に展開されます。以下の詳細を入力します。
  • 認証情報: 必須。既存の認証情報から選択します。詳細は、認証情報 を参照してください。
  • リージョン: リージョンフィールドをクリックして、クラウドプロバイダーのリージョンの一覧を表示します。複数のリージョンを選択するか、または「すべて」を選択してすべてのリージョンを組み込むことができます。Tower は選択されたリージョンに関連付けられたホストの場合にのみ更新されます。

Inventories - create source - GCE example

13.2.5.2.4. Microsoft Azure Classic (非推奨)
  1. Azure から取得されるインベントリーを設定するには、「ソース」フィールドから Microsoft Azure Classic (deprecated) を選択します。
  2. 「ソースの作成」ウィンドウは追加フィールドと共に展開されます。以下の詳細を入力します。
  • 認証情報: 必須。既存の認証情報から選択します。詳細は、認証情報 を参照してください。
  • リージョン: リージョンフィールドをクリックして、クラウドプロバイダーのリージョンの一覧を表示します。複数のリージョンを選択するか、または「すべて」を選択してすべてのリージョンを組み込むことができます。Tower は選択されたリージョンに関連付けられたホストの場合にのみ更新されます。

Inventories - create source - Azure example

13.2.5.2.5. Microsoft Azure Resource Manager
  1. Azure Resource Manager から取得されるインベントリーを設定するには、「ソース」フィールドから Microsoft Azure Resource Managee を選択します。
  2. 「ソースの作成」ウィンドウは追加フィールドと共に展開されます。以下の詳細を入力します。
  • 認証情報: 必須。既存の認証情報から選択します。詳細は、認証情報 を参照してください。
  • リージョン: リージョンフィールドをクリックして、クラウドプロバイダーのリージョンの一覧を表示します。複数のリージョンを選択するか、または「すべて」を選択してすべてのリージョンを組み込むことができます。Tower は選択されたリージョンに関連付けられたホストの場合にのみ更新されます。

Inventories - create source - Azure RM example

13.2.5.2.6. VMware vCenter
  1. VMWare から取得されるインベントリーを設定するには、「ソース」フィールドから VMware vCenter を選択します。
  2. 「ソースの作成」ウィンドウは追加フィールドと共に展開されます。以下の詳細を入力します。
  • 認証情報: 必須。既存の認証情報から選択します (詳細は、認証情報 を参照してください)。
  • インスタンスフィルター: VMWare インベントリー全体をインポートする代わりに、各種のメタデータに基づいてインベントリースクリプトで返されるインスタンスをフィルターします。ここに入力されるフィルターのいずれかに一致するホストはインポートされます。

ここで使用できるフィルターについての詳細は、VMware の Quick Filters Available for vSphere Objects <https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.vcenterhost.doc/GUID-2B6A1637-384D-4597-B453-B575F0ECD8A7.html> _ ドキュメントを参照してください。

  • グループ化のみ: デフォルトで、Tower はユーザー指定の VMWare パラメーターに基づいてグループを作成します。たとえば、インスタンス ID を入力してインスタンスのインスタンス ID に基づいてグループを作成します。
  1. ソース変数 フィールドを使用して、vmware.ini にあり、インベントリー更新スクリプトで使用される変数を上書きします。JSON または YAML 構文のいずれかを使用して変数を入力します。ラジオボタンを使用してこれら 2 つの間の切り替えを行います。これらの変数についての詳細は、Ansible GitHub リポジトリーの vmware_inventory.ini <https://github.com/ansible/ansible/blob/devel/contrib/inventory/vmware_inventory.ini> __を参照してください。

注釈

VMware のインベントリースクリプトは Ansible Tower 3.1.2 で更新され、host_filters または groupby_patterns パラメーターの設定が可能になりました。「グループの作成」画面または「グループの編集」画面の ソース変数 テキストフィールドでそれらの値を指定します。以下は例になります。

_images/inventories-create-vmware-group-source-variables.png

Inventories - create source - VMWare example

13.2.5.2.7. Red Hat Satellite 6
  1. Red Hat Satellite から取得されるインベントリーを設定するには、「ソース」フィールドから Red Hat Satellite を選択します。
  2. 「ソースの作成」ウィンドウは追加フィールドと共に展開されます。
  • 認証情報: 必須。既存の認証情報から選択します (詳細は、認証情報 を参照してください)。
  • ソース変数 フィールドを使用して、foreman.ini にあり、インベントリー更新スクリプトで使用される変数を上書きします。JSON または YAML 構文のいずれかを使用して変数を入力します。ラジオボタンを使用してこれら 2 つの間の切り替えを行います。これらの変数についての詳細は、Ansible GitHub リポジトリーの foreman.ini <https://github.com/ansible/ansible/blob/devel/contrib/inventory/foreman.ini> __を参照してください。

Inventories - create source - RH Satellite example

13.2.5.2.8. Red Hat CloudForms
  1. Red Hat CloudForms から取得されるインベントリーを設定するには、「ソース」フィールドから Red Hat CloudForms を選択します。
  2. 「ソースの作成」ウィンドウは追加フィールドと共に展開されます。以下の詳細を入力します。
  • 認証情報: 必須。既存の認証情報から選択します (詳細は、認証情報 を参照してください)。
  • ソース変数 フィールドを使用して、cloudforms.ini にあり、インベントリー更新スクリプトで使用される変数を上書きします。JSON または YAML 構文のいずれかを使用して変数を入力します。ラジオボタンを使用してこれら 2 つの間の切り替えを行います。これらの変数についての詳細は、Ansible GitHub リポジトリーの cloudforms.ini <https://github.com/ansible/ansible/blob/devel/contrib/inventory/cloudforms.ini> __を参照してください。

Inventories - create source - RH CloudForms example

13.2.5.2.9. OpenStack
  1. OpenStack から取得されるインベントリーを設定するには、「ソース」フィールドから OpenStack を選択します。
  2. 「ソースの作成」ウィンドウは追加フィールドと共に展開されます。以下の詳細を入力します。
  • 認証情報: 必須。既存の認証情報から選択します (詳細は、認証情報 を参照してください)。
  • ソース変数 フィールドを使用して、openstack.yml にあり、インベントリー更新スクリプトで使用される変数を上書きします。JSON または YAML 構文のいずれかを使用して変数を入力します。ラジオボタンを使用してこれら 2 つの間の切り替えを行います。これらの変数についての詳細は、Ansible GitHub リポジトリーの openstack.yml <https://github.com/ansible/ansible/blob/devel/contrib/inventory/openstack.yml> __を参照してください。

Inventories - create source - OpenStack example

13.2.5.2.10. Red Hat Virtualization
  1. Red Hat Virtualization から取得されるインベントリーを設定するには、「ソース」フィールドから Red Hat Virtualization を選択します。
  2. 「ソースの作成」ウィンドウは追加のフィールドと共に展開されます。認証情報 は必須です。既存の認証情報から選択します (詳細は、認証情報 を参照してください)。

Inventories - create source - RHV example

13.2.5.2.11. Ansible Tower
  1. Ansible Tower から取得されるインベントリーを設定するには、「ソース」フィールドから Ansible Tower を選択します。
  2. 「ソースの作成」ウィンドウは追加フィールドと共に展開されます。以下の詳細を入力します。
  • 認証情報: 必須。既存の認証情報から選択します (詳細は、認証情報 を参照してください)。
  • インスタンスフィルター: Tower インベントリー全体をインポートする代わりに、インベントリー ID/名前でインスタンスをフィルターします。インベントリースクリプトはそのインベントリーを他の Tower インスタンスから返します。
_images/inventories-create-source-atower-example.png
13.2.5.2.12. カスタムスクリプト

Tower では、カスタム動的インベントリースクリプトを使用できます (管理者が追加している場合)。

  1. カスタムスクリプトから取得されるインベントリーを設定するには、「ソース」フィールドから カスタムスクリプト を選択します。
  2. 「ソースの作成」ウィンドウは追加フィールドと共に展開されます。以下の詳細を入力します。
  • 認証情報: カスタムソースの認証情報をオプションで指定できます。認証情報の種類は「クラウド」および「ネットワーク」に制限されます。詳細は、カスタム認証情報タイプ を参照してください。
  • カスタムインベントリースクリプト: 必須。既存のインベントリースクリプトから選択します (詳細は、カスタムインベントリースクリプト を参照してください)。
  • 環境変数: インベントリー更新スクリプトで使用される環境の変数を設定します。変数は作成したスクリプトに固有の変数である場合があります。JSON または YAML 構文のいずれかを使用して変数を入力します。ラジオボタンを使用して、これらの切り替えを行います。

Inventories - create source - custom script example

カスタムインベントリースクリプトの同期または使用についての詳細は、Ansible Tower Administration Guideカスタムインベントリースクリプト を参照してください。

13.3. アドホックコマンドの実行

アドホックコマンドを実行するには、以下を実行します。

  1. ホストまたはグループの一覧からインベントリーソースを選択します。インベントリーソースは単一グループまたはホストにすることも、複数のホストのセレクションや複数グループのセレクションにすることもできます。

ad hoc-commands-inventory-home

  1. adhoc ボタンをクリックします。

「コマンドの実行」ウィンドウが開きます。

_images/ad-hoc-run-execute-command.png
  1. 以下のフィールドに詳細を記入します。
  • モジュール: Tower がコマンドの実行での使用をサポートしているモジュールのいずれかを選択します。

    command apt_repository mount win_service
    shell apt_rpm ping win_updates
    yum service selinux win_group
    apt group setup win_user
    apt_key user win_ping
  • 引数: 選択したモジュールで使用する引数を指定します。

  • 制限: インベントリー内のホストをターゲットとして設定するために使用される制限を入力します。インベントリー内のすべてのホストをターゲットに設定するには、all または * を入力するか、またはフィールドを空白にします。これには、起動ボタンのクリック前の直前のビューで選択された内容が自動的に設定されます。

  • マシンの認証情報: コマンドを実行するためにリモートホストにアクセスする際に使用する認証情報を選択します。Ansible がリモートホストにログインするのに必要なユーザー名および SSH キーまたはパスワードが含まれる認証情報を選択します。

  • 詳細: 標準出力の詳細レベルを選択します。

  • フォーク: 必要な場合には、コマンドの実行中に使用する並列または同時プロセスの数を選択します。

  • 変更の表示: 選択して標準出力での Ansible の変更の表示を有効にします。デフォルトはオフになります。

  • 権限昇格の有効化: 有効にされている場合、Playbook は管理者権限を使用して実行されます。これは --become オプションを ansible コマンドに渡すことに相当します。

  • 追加変数: このインベントリーの実行時に適用される追加のコマンドライン変数を指定します。JSON または YAML 構文のいずれかを使用して変数を入力します。ラジオボタンを使用してこれら 2 つの間の切り替えを行います。

ad hoc-commands-inventory-run-command

  1. launch ボタンをクリックして、このアドホックコマンドを実行します。

結果は「Job Results (ジョブの結果)」および「標準出力」ウィンドウに表示されます。

ad hoc-commands-inventory-results-example