第4章 インベントリーファイルのインポート
Automation Controller を使用すると、インベントリーファイルを最初から作成するのではなく、ソースコントロールから選択することができます。この機能はカスタムインベントリースクリプトの場合と同様ですが、ブラウザーでコンテンツを編集するのではなく、ソースコントロールからコンテンツを取得する点で異なります。これは、ファイルが編集不可であることを意味します。ソースでインベントリーが更新されると、それに応じてプロジェクト内のインベントリー (group_vars ファイルと host_vars ファイル、またはそれらに関連付けられたディレクトリーを含む) も更新されます。SCM タイプは、インベントリーファイルとスクリプトの両方を使用できます。インベントリーファイルとカスタムインベントリータイプはどちらもスクリプトを使用します。
インポートされたホストには、デフォルトで imported という説明があります。これは、特定のホストで _awx_description 変数を設定することでオーバーライドできます。たとえば、ソースの .ini ファイルからインポートする場合は、次のホスト変数を追加できます。
[main] 127.0.0.1 _awx_description="my host 1" 127.0.0.2 _awx_description="my host 2"
[main]
127.0.0.1 _awx_description="my host 1"
127.0.0.2 _awx_description="my host 2"
同様に、グループの説明もデフォルトでは imported ですが、_awx_description でオーバーライドすることもできます。
ソースコントロールで古いインベントリースクリプトを使用するには、 Automation Controller ユーザーガイド の 古いインベントリースクリプトをエクスポートする を参照してください。
4.1. カスタムの動的インベントリースクリプト リンクのコピーリンクがクリップボードにコピーされました!
バージョン管理に保存されているカスタム動的インベントリースクリプトをインポートして実行できます。これにより、インベントリースクリプトの変更がより簡単になります。スクリプトをコピーして Automation Controller にペーストする必要はなく、ソースコントロールから直接プルして実行します。スクリプトは、そのタスクに必要な認証情報を処理する必要があります。スクリプトに必要な Python ライブラリーをインストールすることが必要です (カスタム動的インベントリースクリプトにも同じ要件があります)。この点は、ユーザー定義のインベントリーソーススクリプトと SCM ソースの両方に当てはまります。この理由は、両方とも、Playbook に関連する Ansible virtualenv 要件にさらされるためです。
SCM インベントリーソースを編集する場合は環境変数を指定できます。スクリプトによっては、これで十分です。ただし、この方法では、クラウドプロバイダーやインベントリーへのアクセスを可能にするシークレット情報がセキュアに保存されません。
より良い方法は、使用するインベントリースクリプト用に新規の認証情報タイプを作成することです。当該認証情報タイプでは、必要な入力タイプをすべて指定する必要があります。当該タイプの認証情報を作成すると、シークレットは暗号化された形式で保存されます。その認証情報をインベントリーソースに適用すると、スクリプトはそれらの入力にアクセスできるようになります。
詳細は、Automation Controller ユーザーガイドの カスタム認証情報タイプ を参照してください。