3.7. 定義ファイルの内容の内訳
Ansible Builder を使用して自動化実行環境を構築するには、自動化実行環境のコンテナーイメージに含めるコンテンツを指定した定義ファイルを用意する必要があります。
次のセクションでは、定義ファイルの内容を説明します。
3.7.1. ビルド引数 リンクのコピーリンクがクリップボードにコピーされました!
定義ファイルの build_arg_defaults セクションはディクショナリーです。このディクショナリーのキーで、Ansible Builder に渡す引数のデフォルト値を指定できます。
次の表は、build_arg_defaults で使用できる値を示しています。
| 値 | 説明 |
|---|---|
|
| この値を使用すると、コレクションのインストールフェーズ中に、ansible-galaxy CLI に任意の引数を渡すことができます。
たとえば、リリース前のコレクションのインストールを有効にするには |
|
|
この値を使用すると、 |
通常は、podman を使用してベースイメージをカスタマイズし、カスタムベースイメージを作成してから、このカスタムイメージで ansible-builder を呼び出すほうが (特にパイプラインとの関連で) 簡単です。
build_arg_defaults で指定される値は Containerfile にハードコーディングされるため、podman build を手動で呼び出すとこの値が維持されます。
CLI の --build-arg フラグで同じ変数が指定されている場合は、CLI の値が優先されます。
3.7.2. 定義の依存関係 リンクのコピーリンクがクリップボードにコピーされました!
最終イメージにインストールする必要がある依存関係は、定義ファイルの依存関係セクションに含めることができます。
自動化実行環境イメージに関する問題を回避するには、Galaxy、Python、およびシステムのエントリーが有効な要件ファイルを指していること、またはそれぞれのファイルタイプに対して有効なコンテンツであることを確認してください。
3.7.2.1. Galaxy リンクのコピーリンクがクリップボードにコピーされました!
galaxy エントリーには、有効な要件ファイルへの参照か、ansible-galaxy collection install -r … コマンドのインラインコンテンツを含めます。
requirements.yml エントリーは、自動化実行環境定義のフォルダーのディレクトリーからの相対パスか、絶対パスにすることができます。
内容は次のようになります。
collections:
- community.aws
- kubernetes.core
3.7.2.2. Python リンクのコピーリンクがクリップボードにコピーされました!
定義ファイル内の Python エントリーでは、有効な要件ファイル、または PEP508 形式で pip install -r … コマンドの Python 要件のインラインリストを指定します。
requirements.txt エントリーは、コレクションですでに Python 依存関係としてリストされているものに加えて、追加の Python 要件をインストールするファイルです。このエントリーは、自動化実行環境定義のフォルダーのディレクトリーを基準とした相対パス、または絶対パスの形で指定できます。requirements.txt ファイルの内容は、pip freeze コマンドの標準出力と同様に、次の例のような形式にする必要があります。
内容は次のようになります。
boto>=2.49.0
botocore>=1.12.249
pytz
python-dateutil>=2.7.0
awxkit
packaging
requests>=2.4.2
xmltodict
azure-cli-core==2.11.1
openshift>=0.6.2
requests-oauthlib
openstacksdk>=0.13
ovirt-engine-sdk-python>=4.4.10
3.7.2.3. システム リンクのコピーリンクがクリップボードにコピーされました!
定義内の system エントリーは、bindep 要件ファイルまたは bindep エントリーのインラインリストを指します。これらは、コレクションに依存関係としてすでに含まれているものの範囲外にあるシステムレベルの依存関係をインストールします。system エントリーは、自動化実行環境定義のフォルダーのディレクトリーを基準とした相対パス、または絶対パスの形で指定できます。少なくとも、コレクションで [platform:rpm] に必要な要件を指定する必要があります。
これを説明するために、libxml2 および subversion パッケージをコンテナーに追加する bindep.txt ファイルの例を次に示します。
内容は次のようになります。
libxml2-devel [platform:rpm]
subversion [platform:rpm]
複数のコレクションからのエントリーは、1 つのファイルに統合されます。これは bindep により処理され、dnf に渡されます。プロファイルのない要件や、ランタイム要件がイメージにインストールされません。
3.7.2.4. イメージ リンクのコピーリンクがクリップボードにコピーされました!
定義ファイルの images セクションでは、ベースイメージを指定します。署名付きコンテナーイメージの検証は、podman コンテナーランタイムでサポートされています。
次の表は、images で使用できる値のリストを示しています。
| 値 | 説明 |
|---|---|
|
| 自動化実行環境の親イメージを指定し、既存のイメージに基づいて新しいイメージをビルドできるようにします。これは通常、ee-minimal または ee-supported などのサポートされる実行環境ベースイメージですが、作成済みでさらにカスタマイズしたい実行環境イメージでも問題ありません。
コンテナーイメージが使用するには
デフォルトのイメージは |