Documentation

12. インベントリー

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

注釈

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

このタブには、現在利用可能なインベントリーの一覧が表示されます。このインベントリーの一覧は、名前 または 組織 で並び替え、検索できます。この一覧は Cloud Sourced (クラウドソース)失敗したホスト、または Sync Failures (同期の失敗) でもフィルターできます。

Inventories - home with examples

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

  • インベントリーの同期: これが設定されている場合、「同期」を実行して設定済みのソースコントロールからプロジェクトの詳細を取得できます。

  • Status Dot (ステータスを示す丸い点): このインベントリーの最近のジョブのステータスを表示します。

  • 名前: インベントリー名。インベントリー名をクリックすると、選択したインベントリーのプロパティー画面に移動します。ここでは、インベントリーのグループおよびホストが表示されます (このビューは アクション メニューからアクセスすることもできます)。

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

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

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

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

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

  1. add ボタンをクリックすると、インベントリーの作成 ウィンドウが開きます。

Inventories_create_new - create new inventory

  1. 以下のフィールドに該当する詳細を入力します。
  • 名前: このインベントリーに適した名前を入力します。
  • 説明: 任意の説明を入力します (オプション)。
  • 組織: 選択可能な組織から選択します。
  • 変数: このインベントリーのすべてのホストに適用される変数の定義および値。JSON または YAML 構文を使用して変数を入力します。ラジオボタンを使用してこれら 2 つの間の切り替えを行います。

Inventories_create_new_saved - create new inventory

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

保存をクリックしたら、グループおよびホストの管理画面が表示されます。

Inventories_manage_grouphost - new inventory group host manage

12.2. グループおよびホスト

インベントリーはグループに分類され、それらにはホストと他のグループ、およびホストが含まれる可能性があります。インベントリーについていくつかのアクションを選択できます。

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

12.2.1. グループ

グループの下で、どのグループがこのインベントリーに属するかについて、グループ名で簡単にフィルターし、検索して確認することができます。

グループ名の右側のボタンを選すると、追加のアクションをグループに対して実行できます。

  • Sync status (同期のステータス): クラウドソースで設定されたグループのインベントリー同期のステータスを表示します。同期が設定されている場合、このボタンをクリックすると、選択したグループの同期ログが表示されます。
  • Host status (ホストのステータス): 選択したグループの成功したジョブおよび失敗したジョブのステータスを表示します。このボタンをクリックすると、選択したグループのメンバーであるホストの一覧が表示されます。
  • 同期プロセスの開始: 設定したクラウドソースとのグループの同期を開始します (進行中の同期プロセスは、同期中にここに表示される取り消しボタンをクリックして取り消すことができます)。
  • グループの編集: 選択したグループのプロパティーを編集します。
  • Copy Group (グループのコピー): グループをネスト化できます。これにより、グループを別のグループにコピーしたり、移動したりできます。
  • 削除: 選択したグループを削除します。この操作は取り消すことができません!

12.2.1.1. 新規グループの追加

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

  1. add group button ボタンをクリックすると、グループの作成 ウィンドウが開かれます。

Inventories_manage_group_add

  1. 必須およびオプションのフィールドに該当する詳細を入力します。
  • 名前: 必須
  • 説明: 任意の説明を入力します (オプション)。
  • ソース: ホストを入力できる認証情報タイプと一致するソースを選択します。
  • 変数: このグループのすべてのホストに適用される定義および値を入力します。JSON または YAML 構文のいずれかを使用して変数を入力します。ラジオボタンを使用してこれら 2 つの間の切り替えを行います。

以前のバージョンの Ansible Tower では、ソース のデフォルトは「manual」でした。つまり、ホストを Tower に手動で入力する必要がありました。Ansible Tower 3.0 より、ホストは複数の方法/認証情報ソースを使って追加できるようになりました (ホストの個別管理についての詳細は、新規ホストの追加 を参照してください)。

  1. インベントリーグループをクラウドソースと同期するには、ソース メニューから適切なソースを選択します。

注釈

バージョン 2.2 より、Ansible Tower は Amazon Web Services EC2、Rackspace Cloud Servers、Google Compute Engine、VMware vCenter、Microsoft Azure、OpenStack、および管理者によって追加されるカスタムスクリプトをサポートします。Ansible Tower バージョン 3.0 では、Microsoft Azure Classic (非推奨) および Microsoft Azure Resource Manager が追加され、Microsoft Azure について提供されるサポートが拡張し、さらに Red Hat Satellite 6 および RH Cloudforms の認証情報のサポートも追加されています。

  1. すべてのクラウドインベントリーソースには、以下の更新オプションがあります。
  • 上書き: これにチェックが付けられている場合、リモートソースに見つからないすべての子グループおよびホストはローカルインベントリーから削除されます。チェックが付けられていない場合には、外部ソースで見つからないローカルの子ホストおよびグループはそのままの状態となり、インベントリーの更新プロセスによる影響を受けません。
  • 変数の上書き: これにチェックが付けられている場合、子グループおよびホストの変数は削除され、外部ソースで見つかるものに置き換えられます。チェックが付けられていない場合には、マージが実行され、ローカル変数と外部ソースで見つかるものが組み合わされます。
  • 起動時の更新: このインベントリーを使用してジョブを実行するたびに、ジョブタスクの実行前に選択したソースからのインベントリーを更新します。ジョブの生成速度がインベントリーの同期速度を上回る場合のジョブのオーバーフローを避けるために、これを選択して、特定の期間 (秒単位) 以前のインベントリーの同期をキャッシュするようキャッシュタイムアウトを設定できます。

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

注釈

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

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

Inventories_manage_group_add-saved

12.2.1.2. 認証情報ソース

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

12.2.1.2.1. Rackspace クラウドサーバー

注釈

Rackspace インベントリーの同期は Tower 3.1.0 で非推奨にされており、Rackspace のサポートは今後のリリースで削除されます。

Rackspace のグループを設定するには、Rackspace Cloud Servers (Rackspace クラウドサーバー) を選択してから以下の詳細を入力します。

  • クラウド認証情報: 既存の認証情報から選択します。詳細は、認証情報 を参照してください。
  • リージョン: リージョンフィールドをクリックして、クラウドプロバイダーのリージョンの一覧を表示します。複数のリージョンを選択するか、または「すべて」を選択してすべてのリージョンを組み込むことができます。Tower は選択されたリージョンに関連付けられたホストでのみ更新されます。
  • 変数: このグループのすべてのホストに適用される定義および値を入力します。JSON または YAML 構文のいずれかを使用して変数を入力します。ラジオボタンを使用してこれら 2 つの間の切り替えを行います。

オプションの更新 を設定することもできます。

  • 上書き: これにチェックが付けられている場合、外部ソースに見つからないすべての子グループおよびホストはローカルインベントリーから削除されます。チェックが付けられていない場合は、外部ソースで見つからないローカルの子ホストおよびグループはそのままの状態となり、インベントリーの更新プロセスによる影響を受けません。
  • 変数の上書き: これにチェックが付けられている場合、子グループおよびホストのすべての変数は削除され、外部ソースで見つかるものに置き換えられます。チェックが付けられていない場合は、マージが実行され、ローカル変数と外部ソースで見つかるものが組み合わされます。
  • 起動時の更新: このインベントリーを使用してジョブを実行するたびに、ジョブタスクの実行前に選択したソースからのインベントリーが更新されます。

Inventories - create Rackspace group for example inventory

12.2.1.2.2. Amazon Web Services EC2

AWS のグループを設定するには、Amazon EC2 を選択してから以下の詳細を入力します。

Inventories - create AWS group for example inventory

  • クラウド認証情報: 既存の認証情報から選択します (詳細は、認証情報 を参照してください)。

    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``を入力します。
    • 名前 タグが test で開始するホストに制限するには、``tag:Name=test*``を入力します。

    ここで使用できるフィルターについての詳細は、Amazon ドキュメントの Describe Instances を参照してください。

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

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

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

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

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

オプションの更新 を設定することもできます。

  • 上書き: これにチェックが付けられている場合、外部ソースに見つからないすべての子グループおよびホストはローカルインベントリーから削除されます。チェックが付けられていない場合は、外部ソースで見つからないローカルの子ホストおよびグループはそのままの状態となり、インベントリーの更新プロセスによる影響を受けません。
  • 変数の上書き: これにチェックが付けられている場合、子グループおよびホストのすべての変数は削除され、外部ソースで見つかるものに置き換えられます。チェックが付けられていない場合は、マージが実行され、ローカル変数と外部ソースで見つかるものが組み合わされます。
  • 起動時の更新: このインベントリーを使用してジョブを実行するたびに、ジョブタスクの実行前に選択したソースからのインベントリーが更新されます。
12.2.1.2.3. Google Compute Engine

Google Compute Engine のグループを設定するには、Google Compute Engine を選択し、以下の詳細を入力します。

  • クラウド認証情報: 既存の認証情報から選択します。詳細は、認証情報 を参照してください。
  • リージョン: リージョンフィールドをクリックして、クラウドプロバイダーのリージョンの一覧を表示します。複数のリージョンを選択するか、または「すべて」を選択してすべてのリージョンを組み込むことができます。Tower は選択されたリージョンに関連付けられたホストでのみ更新されます。
  • 変数: このグループのすべてのホストに適用される定義および値を入力します。JSON または YAML 構文のいずれかを使用して変数を入力します。ラジオボタンを使用してこれら 2 つの間の切り替えを行います。

オプションの更新 を設定することもできます。

  • 上書き: これにチェックが付けられている場合、外部ソースに見つからないすべての子グループおよびホストはローカルインベントリーから削除されます。チェックが付けられていない場合は、外部ソースで見つからないローカルの子ホストおよびグループはそのままの状態となり、インベントリーの更新プロセスによる影響を受けません。
  • 変数の上書き: これにチェックが付けられている場合、子グループおよびホストのすべての変数は削除され、外部ソースで見つかるものに置き換えられます。チェックが付けられていない場合は、マージが実行され、ローカル変数と外部ソースで見つかるものが組み合わされます。
  • 起動時の更新: このインベントリーを使用してジョブを実行するたびに、ジョブタスクの実行前に選択したソースからのインベントリーが更新されます。

Inventories - create GCE group for example inventory

12.2.1.2.4. Microsoft Azure Classic (非推奨)

Microsoft Azure Classic のグループを設定するには、Microsoft Azure Classic (deprecated) を選択し、以下の詳細を入力します。

  • クラウド認証情報: 既存の認証情報から選択します。詳細は、認証情報 を参照してください。
  • リージョン: リージョンフィールドをクリックして、クラウドプロバイダーのリージョンの一覧を表示します。複数のリージョンを選択するか、または「すべて」を選択してすべてのリージョンを組み込むことができます。Tower は選択されたリージョンに関連付けられたホストでのみ更新されます。
  • 変数: このグループのすべてのホストに適用される定義および値を入力します。JSON または YAML 構文のいずれかを使用して変数を入力します。ラジオボタンを使用してこれら 2 つの間の切り替えを行います。

オプションの更新 を設定することもできます。

  • 上書き: これにチェックが付けられている場合、外部ソースに見つからないすべての子グループおよびホストはローカルインベントリーから削除されます。チェックが付けられていない場合は、外部ソースで見つからないローカルの子ホストおよびグループはそのままの状態となり、インベントリーの更新プロセスによる影響を受けません。
  • 変数の上書き: これにチェックが付けられている場合、子グループおよびホストのすべての変数は削除され、外部ソースで見つかるものに置き換えられます。チェックが付けられていない場合は、マージが実行され、ローカル変数と外部ソースで見つかるものが組み合わされます。
  • 起動時の更新: このインベントリーを使用してジョブを実行するたびに、ジョブタスクの実行前に選択したソースからのインベントリーが更新されます。

Inventories - create Azure group for example inventory

12.2.1.2.5. Microsoft Azure Resource Manager

Microsoft Azure Resource Manager のグループを設定するには、Microsoft Azure Resource Managee を選択し、以下の詳細を入力します。

  • クラウド認証情報: 既存の認証情報から選択します。詳細は、認証情報 を参照してください。
  • リージョン: リージョンフィールドをクリックして、クラウドプロバイダーのリージョンの一覧を表示します。複数のリージョンを選択するか、または「すべて」を選択してすべてのリージョンを組み込むことができます。Tower は選択されたリージョンに関連付けられたホストでのみ更新されます。
  • 変数: このグループのすべてのホストに適用される定義および値を入力します。JSON または YAML 構文のいずれかを使用して変数を入力します。ラジオボタンを使用してこれら 2 つの間の切り替えを行います。

オプションの更新 を設定することもできます。

  • 上書き: これにチェックが付けられている場合、外部ソースに見つからないすべての子グループおよびホストはローカルインベントリーから削除されます。チェックが付けられていない場合は、外部ソースで見つからないローカルの子ホストおよびグループはそのままの状態となり、インベントリーの更新プロセスによる影響を受けません。
  • 変数の上書き: これにチェックが付けられている場合、子グループおよびホストのすべての変数は削除され、外部ソースで見つかるものに置き換えられます。チェックが付けられていない場合は、マージが実行され、ローカル変数と外部ソースで見つかるものが組み合わされます。
  • 起動時の更新: このインベントリーを使用してジョブを実行するたびに、ジョブタスクの実行前に選択したソースからのインベントリーが更新されます。

Inventories - create Azure Resource Manager group for example inventory

12.2.1.2.6. VMware vCenter

VMware vCenter のグループを設定するには、VMware vCenter を選択し、以下の詳細を入力します。

  • クラウド認証情報: 既存の認証情報から選択します。詳細は、認証情報 を参照してください。
  • 変数: このグループのすべてのホストに適用される定義および値を入力します。JSON または YAML 構文のいずれかを使用して変数を入力します。ラジオボタンを使用してこれら 2 つの間の切り替えを行います。
  • ソース変数: vmware_inventory.ini にあり、インベントリー更新スクリプトで使用される変数を上書きします。これらの変数についての詳細は、view vmware_inventory.ini in the Ansible GitHub repo を参照してください。JSON または YAML 構文のいずれかを使用して変数を入力します。ラジオボタンを使用してこれら 2 つの間の切り替えを行います。

注釈

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

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

オプションの更新 を設定することもできます。

  • 上書き: これにチェックが付けられている場合、外部ソースに見つからないすべての子グループおよびホストはローカルインベントリーから削除されます。チェックが付けられていない場合は、外部ソースで見つからないローカルの子ホストおよびグループはそのままの状態となり、インベントリーの更新プロセスによる影響を受けません。
  • 変数の上書き: これにチェックが付けられている場合、子グループおよびホストのすべての変数は削除され、外部ソースで見つかるものに置き換えられます。チェックが付けられていない場合は、マージが実行され、ローカル変数と外部ソースで見つかるものが組み合わされます。
  • 起動時の更新: このインベントリーを使用してジョブを実行するたびに、ジョブタスクの実行前に選択したソースからのインベントリーが更新されます。

Inventories - create VMware group for example inventory

12.2.1.2.7. Red Hat Satellite 6

Red Hat Satellite 6 のグループを設定するには、Red Hat Satellite 6 を選択し、以下の詳細を入力します。

  • クラウド認証情報: 既存の認証情報から選択します。詳細は、認証情報 を参照してください。
  • 変数: このグループのすべてのホストに適用される定義および値を入力します。JSON または YAML 構文のいずれかを使用して変数を入力します。ラジオボタンを使用してこれら 2 つの間の切り替えを行います。

オプションの更新 を設定することもできます。

  • 上書き: これにチェックが付けられている場合、外部ソースに見つからないすべての子グループおよびホストはローカルインベントリーから削除されます。チェックが付けられていない場合は、外部ソースで見つからないローカルの子ホストおよびグループはそのままの状態となり、インベントリーの更新プロセスによる影響を受けません。
  • 変数の上書き: これにチェックが付けられている場合、子グループおよびホストのすべての変数は削除され、外部ソースで見つかるものに置き換えられます。チェックが付けられていない場合は、マージが実行され、ローカル変数と外部ソースで見つかるものが組み合わされます。
  • 起動時の更新: このインベントリーを使用してジョブを実行するたびに、ジョブタスクの実行前に選択したソースからのインベントリーが更新されます。

Inventories - create RHSat6 group for example inventory

12.2.1.2.8. Red Hat CloudForms

Red Hat CloudForms のグループを設定するには、Red Hat CloudForms を選択してから以下の詳細を入力します。

  • クラウド認証情報: 既存の認証情報から選択します。詳細は、認証情報 を参照してください。
  • 変数: このグループのすべてのホストに適用される定義および値を入力します。JSON または YAML 構文のいずれかを使用して変数を入力します。ラジオボタンを使用してこれら 2 つの間の切り替えを行います。

オプションの更新 を設定することもできます。

  • 上書き: これにチェックが付けられている場合、外部ソースに見つからないすべての子グループおよびホストはローカルインベントリーから削除されます。チェックが付けられていない場合は、外部ソースで見つからないローカルの子ホストおよびグループはそのままの状態となり、インベントリーの更新プロセスによる影響を受けません。
  • 変数の上書き: これにチェックが付けられている場合、子グループおよびホストのすべての変数は削除され、外部ソースで見つかるものに置き換えられます。チェックが付けられていない場合は、マージが実行され、ローカル変数と外部ソースで見つかるものが組み合わされます。
  • 起動時の更新: このインベントリーを使用してジョブを実行するたびに、ジョブタスクの実行前に選択したソースからのインベントリーが更新されます。

Inventories - create RHCloudForm group for example inventory

12.2.1.2.9. OpenStack

OpenStack のグループを設定するには、OpenStack を選択してから以下の詳細を入力します。

  • クラウド認証情報: 既存の認証情報から選択します。詳細は、認証情報 を参照してください。
  • 変数: このグループのすべてのホストに適用される定義および値を入力します。JSON または YAML 構文のいずれかを使用して変数を入力します。ラジオボタンを使用してこれら 2 つの間の切り替えを行います。
  • ソース変数: openstack.yml にあり、インベントリー更新スクリプトで使用される変数を上書きします。これらの変数についての詳細は、view openstack.yml in the Ansible GitHub repo を参照してください。JSON または YAML 構文のいずれかを使用して変数を入力します。ラジオボタンを使用してこれら 2 つの間の切り替えを行います。

オプションの更新 を設定することもできます。

  • 上書き: これにチェックが付けられている場合、外部ソースに見つからないすべての子グループおよびホストはローカルインベントリーから削除されます。チェックが付けられていない場合は、外部ソースで見つからないローカルの子ホストおよびグループはそのままの状態となり、インベントリーの更新プロセスによる影響を受けません。
  • 変数の上書き: これにチェックが付けられている場合、子グループおよびホストのすべての変数は削除され、外部ソースで見つかるものに置き換えられます。チェックが付けられていない場合は、マージが実行され、ローカル変数と外部ソースで見つかるものが組み合わされます。
  • 起動時の更新: このインベントリーを使用してジョブを実行するたびに、ジョブタスクの実行前に選択したソースからのインベントリーが更新されます。

Inventories - create OpenStack group for example inventory

12.2.1.2.10. カスタムスクリプト

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

カスタムインベントリースクリプトを使用するようにグループを設定するには、カスタムスクリプト を選択してから以下の詳細を入力します。

  • カスタムインベントリースクリプト: 既存のインベントリースクリプトから選択します。

  • 環境変数: インベントリー更新スクリプトで使用される環境の変数を設定します。変数は作成したスクリプトに固有のものになります。

    JSON または YAML 構文のいずれかを使用して変数を入力します。ラジオボタンを使用してこれら 2 つの間の切り替えを行います。

オプションの更新 を設定することもできます。

  • 上書き: これにチェックが付けられている場合、外部ソースに見つからないすべての子グループおよびホストはローカルインベントリーから削除されます。チェックが付けられていない場合は、外部ソースで見つからないローカルの子ホストおよびグループはそのままの状態となり、インベントリーの更新プロセスによる影響を受けません。
  • 変数の上書き: これにチェックが付けられている場合、子グループおよびホストのすべての変数は削除され、外部ソースで見つかるものに置き換えられます。チェックが付けられていない場合は、マージが実行され、ローカル変数と外部ソースで見つかるものが組み合わされます。
  • 起動時の更新: このインベントリーを使用してジョブを実行するたびに、ジョブタスクの実行前に選択したソースからのインベントリーが更新されます。

Inventories - create custom group for example inventory

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

12.2.1.3. スケジューリング

クラウドサービスから取得されるグループの場合、インベントリー更新プロセスは スケジュール ビューでスケジュールできます。スケジュール ビューにアクセスするには、インベントリーグループ名の横にあるスケジュール (schedule-button) ボタンをクリックし、グループの編集 ダイアログを開きます。

inventories-edit-group-edit

この画面には、選択された グループ で現在利用できるスケジュールの一覧が表示されます。スケジュールの一覧は、名前 で並べ替えることができます。

inventories-edit-group-schedule

スケジュールの一覧には以下が含まれます。

  • 名前 (スケジュール名をクリックすると、スケジュールの編集 ダイアログが開きます)
  • 初回実行日時
  • 次回実行日時

スケジュール 画面の右上にあるボタンから以下のアクションを実行できます。

  • 新規スケジュールの作成
  • このビューの更新
12.2.1.3.1. 新規スケジュールの追加

新規スケジュールを作成するには、以下を実行します。

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

Group - create new schedule

  1. 以下のフィールドに適切な情報を入力して、「保存」を選択します。
  • 名前 (必須)
  • 開始日 (必須)
  • 開始時間 (必須)
  • ローカルタイムゾーン (入力した開始時間はこのタイムゾーンの時間になります)
  • 繰り返しの頻度 (更新頻度が変更されると適切なオプションが表示されます)
  • なし
_images/inventories-edit-group-schedule-none.png
  • 分、時、または日
_images/inventories-edit-group-schedule-minute.png
_images/inventories-edit-group-schedule-week.png
_images/inventories-edit-group-schedule-month.png
_images/inventories-edit-group-schedule-year.png

Schedule Description (スケジュールの説明) パネルでは、選択したローカルタイムゾーンまたは UTC で設定されたスケジュールとスケジュールされたオカレンスの一覧を確認することができます (必要に応じて Local Time (ローカルタイム) または UTC を選択します)。

注釈

UTC 時間の設定を使用する場合、ジョブが 1 日の特定の時間に繰り返し実行される場合には、夏時間 (DST) へ/からの切り替えがあると、ローカルタイムゾーンに合わせてこれらのジョブのスケジュールは移動します。

スケジュールを保存したら、グループ名の横にあるスケジュール (schedule-button) タブをクリックして表示できます。

Inventories - group with example schedule

スケジュールについていくつかのサーバーのアクションを選択できます。

  • ON/OFF – トグルボタンを使用して、アクティブなスケジュールを停止したり、停止したスケジュールをアクティブにしたりできます。
  • スケジュールの編集
  • スケジュールの削除

12.2.2. ホスト

ホストがインベントリー表示画面の右側に一覧表示されます。

Inventories - hosts list for example group

ホストの一覧は、名前 または グループ で並び替え、検索でき、無効にされたホストや、失敗したジョブを持つホスト、および外部ソースと同期したホストでフィルターできます。

この一覧には各ホストについての情報やいくつかのアクションが表示されます。

  • ON/OFF: ホストが利用可能かどうか、またホストを実行中のジョブに組み込む必要があるかどうかを示します。外部インベントリーの一部となっているホストについては、このフラグはインベントリー同期プロセスで設定され、手動で変更することはできません。
  • 名前: Host Properties (ホストプロパティー) ダイアログを開きます。
  • Available (利用可能): ホストが Tower からジョブを受信できるように有効にされているかを示すトグル。クリックしてこの設定を切り替えます。
  • ジョブ: このホストに対して実行された最新のジョブを表示します。このボタンをクリックすると、最新のジョブおよびそれらのステータスを示すウィンドウが表示されます。
  • ホストの編集: Host Properties (ホストプロパティー) ダイアログが開きます。
  • Copy host (ホストのコピー): ホストを異なるグループにコピーするか、または移動します。
  • 削除: ホストを Tower から削除します。この操作は取り消すことができません!

12.2.2.1. 新規ホストの追加

ホストは IP アドレスやホスト名により手動で追加できます。Tower は AWS EC2、Google Compute Engine、MS Azure、VMware、Rackspace Open Cloud または OpenStack からのインベントリーを直接同期することもできます。

新規ホストを作成してこれを既存グループに追加するには、以下を実行します。

  1. add host button ボタンをクリックします。

これにより、ホストの作成 ダイアログが開かれます。

Inventories - create new host for example group

  1. 以下のフィールドに該当する詳細を入力します。
  • ホスト名: ホストのホスト名または IP アドレス
  • 説明: 任意の説明を入力します。
  • Enabled? (有効?): ホストが利用可能かどうか、またホストを実行中のジョブに組み込む必要があるかどうかを示します。外部インベントリーの一部となっているホストについては、このフラグを変更することはできません。これはインベントリー同期プロセスで設定されます。
  • 変数: 選択されたホストに適用される変数の定義および値。JSON または YAML 構文を使用して変数を入力します。ラジオボタンを使用してこれら 2 つの間の切り替えを行います。
  1. 完了したら 保存 をクリックします。

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

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

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

ad hoc-commands-inventory-home

次に、adhoc ボタンをクリックします。

_images/ad-hoc-run-command-empty.png

以下のフィールドに詳細を記入します。

  • モジュール: 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 キーまたはパスワードが含まれる認証情報を選択します。

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

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

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

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

ad hoc-commands-inventory-run-command

12.4. システムトラッキング

注釈

Ansible Tower 2.2 で新機能として導入されたシステムトラッキングは、Enterprise レベルのライセンスを持つユーザーのみが利用できます。

システムトラッキングは、1 つのホストで異なる日にスキャンを実行した場合や 2 つのホストで同じ日にスキャンを実行した場合など、2 回のスキャン実行の結果を比較します。

データはファクトモジュール別に分類されます。

  • Packages
  • Services
  • Files
  • Ansible
  • Custom

Tower は、データを見つけるためにすべてのことを試行するように設計されています。スキャン実行を指定せずに日付を選択する場合、Tower は昨年の 1 年分に相当するスキャン実行のデータを収集して組み込むべき日付を確認します。比較が正確に行われる場合には、指定した日ではなく選択可能な日からの結果が表示されます。比較が正常に行われない場合には、失敗した理由を示すメッセージが表示されます。

注釈

サービスのスキャンジョブは、同じ物理マシンをポイントするホストを含むインベントリーに対しては実行することができません。

12.4.1. 単一ホストのワークフロー

2 つの日付での比較を行うためにインベントリーで単一ホストを選択してから system-tracking ボタンをクリックします。

select one host to compare

注釈

スキャンするように設定されたジョブテンプレートを作成していない場合は、適切なジョブテンプレートが作成されるまで次に進むことができません。

ホストのスキャンデータのある2 つの日付を選択します。左側に最も古い日付を、右側に最新の日付を並べます。

select one host two dates

相違点を比較するモジュール (PackagesServices、または Ansible) を選択します。モジュールを変更するには、ボタンナビゲーションでモジュールのボタンをクリックし、ファクトのタイプ別にフィルターします。「packages」および「services」については変更のみが表示され、「ansible」および「files」モジュールの変更における相違点は赤色で強調表示されます。

単一の日付に実行される複数のスキャン実行を比較する場合には、どちらのデータセレクターでも同じ日付を選択することができます。2 つ以上のスキャンジョブの実行が特定の日について検出される場合、Tower は最新のジョブと次にに最新のジョブを比較します。選択した日付に 1 回の実行のみが設定される場合、Tower はいずれかの列でスキャンジョブを見つけられなかったことを示すメッセージを表示する可能性があります (Ansible Tower Release Notes マニュアルの Known Issues にも記載されています)。

select one host one date module expanded

選択した日付について検出されたスキャンが同一の場合、Tower はスキャンされたすべてのファクトの単一の結果を表示することに注意してください。

例として、ユーザーが両方の日付として「7/7/2015」を選択し、「packages」モジュールを選択したとします。また、2 回の実行がこの日に実行されたものの、選択したホストのパッケージには変更がなかったとします。ユーザーにはこれらのスキャンが同一であることを示すメッセージが表示され、相違点についての 2 つの列の一覧表示ではなく、すべてのパッケージのバージョンを含む単一の列が表示されます。

_images/system-tracking-one-date-identical-scan.png

12.4.2. ホストとホストのワークフロー

2 つのホストを比較するには、ホストを選択してから system-tracking ボタンをクリックします。

select two hosts to compare

2 つのホストの比較に使用する単一の日付を選択します。次に、相違点を表示するモジュールを選択します。

select two hosts scanned

Tower は両方のホストについて単一の日付を選択することのみをサポートしますが、結果には異なる日付が表示される場合があることに気づかれるかもしれません。ここでも Tower はすべてのことを試行してデータを見つけようとすることに留意してください。スキャン実行を指定せずに日付を選択する場合、Tower は昨年の 1 年分に相当するスキャン実行のデータを収集して組み込むべき日付を確認します。「packages」および「services」については変更のみが表示され、「ansible」および「files」モジュールの変更の相違点は赤色で強調表示されることに注意してください。

select two hosts scanned expanded