第5章 インベントリーファイルのインポート


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"
Copy to Clipboard Toggle word wrap

同様に、グループの説明もデフォルトでは imported ですが、_awx_description でオーバーライドすることもできます。

ソース管理で古いインベントリースクリプトを使用するには、自動化実行の使用古いインベントリースクリプトのエクスポート を参照してください。

5.1. ソースコントロール管理インベントリーソースフィールド

使用するソースのフィールドは以下のとおりです。

  • source_project: 使用するプロジェクト。
  • source_path: ディレクトリーまたはファイルを示すプロジェクト内の相対パス。空白のままにしても、"" はプロジェクトの root ディレクトリーを示す相対パスを表します。
  • source_vars: "file" タイプのインベントリーソースに設定されている場合には、実行時に環境変数に渡されます。

補足

  • プロジェクトを更新すると、そのプロジェクトが使用されているインベントリーの更新が自動的にトリガーされます。
  • プロジェクトの更新は、インベントリーソースの作成直後にスケジュールされます。
  • インベントリー更新もプロジェクト更新も、関連ジョブの実行中にブロックされることはありません。
  • 大規模なプロジェクト (約 10 GB) がある場合、/tmp のディスク領域が問題になる可能性があります。

インベントリーの Add source ページから、Automation Controller UI で場所を手動で指定できます。インベントリーソースの作成手順は、ソースの追加 を参照してください。

プロジェクトの更新時に、リストを更新して最新のソースコントロール管理 (SCM) 情報を使用します。インベントリーソースが SCM インベントリーソースとしてプロジェクトを使用しない場合、更新時にインベントリーのリストが更新されない可能性があります。

インベントリーが SCM ソースを含む場合、インベントリー更新のジョブの Details ページに、プロジェクト更新のステータスインジケーターとプロジェクト名が表示されます。

ステータスインジケーターはプロジェクト更新ジョブにリンクします。

プロジェクト名はプロジェクトにリンクします。

関連ジョブの実行中にインベントリーの更新を実行できます。

5.1.1. サポートされるファイルの構文

Automation Controller は、Ansible の ansible-inventory モジュールを使用してインベントリーファイルを処理し、Automation Controller で必要となる有効なインベントリー構文をすべてサポートします。

重要

インベントリースクリプトを Python で記述する必要はありません。ソースフィールドには任意の実行可能ファイルを入力できます。そのファイルに対して chmod +x を実行し、Git にチェックインする必要があります。

以下は、Automation Controller がインポート用に読み取ることができる JSON 出力の実際の例です。

{
    "_meta": {
        "hostvars": {
            "host1": {
                "fly_rod": true
            }
        }
    },
    "all": {
        "children": [
            "groupA",
            "ungrouped"
        ]
    },
    "groupA": {
        "hosts": [
            "host1",
            "host10",
            "host11",
            "host12",
            "host13",
            "host14",
            "host15",
            "host16",
            "host17",
            "host18",
            "host19",
            "host2",
            "host20",
            "host21",
            "host22",
            "host23",
            "host24",
            "host25",
            "host3",
            "host4",
            "host5",
            "host6",
            "host7",
            "host8",
            "host9"
        ]
    }
}
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat