4.2. SCM インベントリーソースのフィールド
使用するソースのフィールドは以下のとおりです。
-
source_project: 使用するプロジェクト。 -
source_path: ディレクトリーまたはファイルを示すプロジェクト内の相対パス。空白のままにしても、"" はプロジェクトの root ディレクトリーを示す相対パスを表します。 -
source_vars: "file" タイプのインベントリーソースに設定されている場合には、実行時に環境変数に渡されます。
補足
- プロジェクトを更新すると、そのプロジェクトが使用されているインベントリーの更新が自動的にトリガーされます。
- プロジェクトの更新は、インベントリーソースの作成直後にスケジュールされます。
- インベントリー更新もプロジェクト更新も、関連ジョブの実行中にブロックされることはありません。
-
大規模なプロジェクト (約 10 GB) がある場合、
/tmpのディスク領域が問題になる可能性があります。
Automation Controller UI の Create Inventory Source ページから、手動で場所を指定できます。インベントリーソースの作成手順については、ソースの追加 を参照してください。
プロジェクトの更新時には、最新の SCM 情報を使用するようにリストを更新します。インベントリーソースが SCM インベントリーソースとしてプロジェクトを使用しない場合、更新時にインベントリーのリストが更新されない可能性があります。
インベントリーが SCM ソースを含む場合、インベントリー更新の Job Details ページには、プロジェクト更新のステータスインジケータとプロジェクト名が表示されます。
ステータスインジケーターはプロジェクト更新ジョブにリンクします。
プロジェクト名はプロジェクトにリンクします。
関連ジョブの実行中にインベントリーの更新を実行できます。
4.2.1. サポートされるファイルの構文 リンクのコピーリンクがクリップボードにコピーされました!
Automation Controller は、Ansible の ansible-inventory モジュールを使用してインベントリーファイルを処理し、Automation Controller で必要となる有効なインベントリー構文をすべてサポートします。
Python でシェルスクリプトを記述する必要はありません。ソースフィールドに実行ファイルを入力し、そのファイルの chmod +x を実行して Git に確認します。
以下は、Automation Controller がインポート用に読み取ることができる JSON 出力の有効な例です。
関連情報
- インベントリーファイルの例については、test-playbooks/inventories を参照してください。
- その中のシェルスクリプトの例は、inventory /changes.py を参照してください。
- シェルスクリプトの実装方法は、サポート記事 How to migrate inventory scripts from Red Hat Ansible tower to Red Hat Ansible Automation Platform? を参照してください。