5 カスタム実行環境の作成
ノート:
Builderユーティリティを使用すると、カスタム実行環境を作成できますが、カスタム実行環境の問題が発生した場合、Oracleサポートでは、Oracle提供のOLAM-EEデフォルト・イメージに戻して問題をトラブルシューティングするよう求められる場合があります。- Oracle Container Registryからアクセス可能なベースOLAM-EEコンテナ・イメージ。 メイン・バージョンにOCI SDKとAnsible OCIコレクションが含まれ、最小バージョンが含まれていない場合、このコンテナ・イメージの2つのバージョンを使用できます。 Ansible OCIコレクションは、新しいOCI機能を利用するために定期的に更新されるため、OLAM-EEコンテナ・イメージのメイン・バージョンでは、より頻繁に更新がリリースされます。
- Oracle Container Registryからもアクセスできる、ビルダー・ユーティリティで作成されたイメージに必要な特別なビルダー・イメージ。 Builderユーティリティは、コンテナ・イメージのコンパイル時にこのイメージを使用します。
- 1つ以上の不可解なコレクション。
- Pythonまたはシステムの依存関係(モジュール、コレクションのプラグイン、カスタム・スクリプト、bashコマンドなど)、または両方の組合せ。
Builderユーティリティを使用して、バージョン1、2または3の形式の実行環境を作成できます。 例については、「フォーマット1を使用したカスタム実行環境の構成」、「形式2を使用したカスタム実行環境の構成」、および「フォーマット3を使用したカスタム実行環境の構成」を参照してください。
Oracle Container Registryで使用可能なデフォルトのolam-ee
では、最新バージョンのOracle Linux 8コンテナ・イメージが使用されます。 カスタム実行環境を構築する際には、ansible-core
の最新バージョンと、提供されているOracle Linux 8リリースに対するpython依存関係を常に使用します。 olam-ee
およびPythonの依存性の詳細は、「Oracle Linux Automation Manager 2.3: リリース・ノート」を参照してください。
ansible_python_interpreter
変数を適用します。 たとえば、
"ansible_python_interpreter: /usr/bin/python<version>"
前の例では、version
は、プレイブックに必要なpythonバージョンです。
ジョブ・テンプレートでの変数の設定の詳細は、「Oracle Linux Automation Manager 2.3: ユーザーズ・ガイド」を参照してください。
フォーマット1を使用したカスタム実行環境の構成
- Builderユーティリティをインストールしたホストで、Builderユーティリティの作業ディレクトリを作成します。 たとえば、
mkdir ~/builder-utility cd ~/builder-utility
- 次のファイルを作成します。
touch ansible.cfg execution-environment.yml requirements.yml requirements.txt bindep.txt
- execution-environment.ymlファイルで、次のパラメータを追加します:
--- version: 1 build_arg_defaults: EE_BASE_IMAGE: 'container-registry.oracle.com/oracle_linux_automation_manager/olam-ee:2.3-<OS_Version>' EE_BUILDER_IMAGE: 'container-registry.oracle.com/oracle_linux_automation_manager/olam-builder:2.3-<OS_Version>' ANSIBLE_GALAXY_CLI_COLLECTION_OPTS: "--ignore-certs" ansible_config: 'ansible.cfg' dependencies: galaxy: requirements.yml python: requirements.txt system: bindep.txt additional_build_steps: prepend: | RUN whoami RUN cat /etc/os-release append: - RUN echo This is a post-install command! - RUN ls -la /etc
この例では、次のようになります。- EE_BASE_IMAGE: このパラメータには、
container-registry.oracle.com/oracle_linux_automation_manager/olam-ee:2.3-<OS_version>
から取得できるベースolam-eeが必要です。OS_versionは、Oracle Linux 8またはOracle Linux 9の場合はol8
またはol9
です。 または、この目的のためにPrivate Automation Hubを構成している場合は、Private Automation Hubからこのイメージのコピーを取得することもできます。ノート:
このコンテナ・イメージの2つのバージョンは、メイン・バージョンにOCI SDKとAnsible OCIコレクションが含まれ、最小バージョンが含まれていないOracle Container Registryで使用できます。 前の例で指定したバージョンでは、メイン・バージョンが使用されます。 最小バージョンの詳細は、「Oracle Linux Automation Manager 2.3: リリース・ノート」を参照してください。 - EE_BUILDER_IMAGE: このパラメータにはolam-builderイメージが必要です。このイメージは、
container-registry.oracle.com/oracle_linux_automation_manager/olam-builder-<OS_version>
から取得できます。OS_versionは、Oracle Linux 8またはOracle Linux 9の場合はol8
またはol9
です。 ビルダー・コンテナ・イメージには、顧客実行環境の作成に必要なビルド・ライブラリが含まれています。 または、この目的のためにPrivate Automation Hubを構成している場合は、Private Automation Hubからこのイメージのコピーを取得することもできます。 - ANSIBLE_GALAXY_CLI_COLLECTION_OPTS:
"--ignore-certs"
オプションを使用します。 このパラメータを使用すると、自己署名証明書を使用せずにリポジトリからイメージを取得できます。 - ansible_config:
ansible.cfg
ファイルを指定して、プライベート・アカウントのトークンおよびその他の設定をPrivate Automation Hubサーバーに渡すことができます。 それ以外の場合、ビルダー・ユーティリティはansible.galaxyを使用してAnsibleコレクションをダウンロードします。 構成ファイルのパスを文字列としてリストすると、ビルドの初期フェーズでビルド引数として含められます。 - 依存関係: このセクションは、最後のコンテナにインストールする必要があるAnsible Galaxy、Pythonおよびシステム依存関係を定義するディクショナリ値です。
ノート:
この項にリストされている、カバレッジのOracle LinuxまたはOracle Linux Automation Manager範囲外の依存関係は、サポートの対象範囲外です。- galaxy: このパラメータは、コレクションの依存関係を定義するファイルへのパスです。 Builderユーティリティは、これらを
ansible-galaxy collection install -r requirements.yml
コマンドでインストールします。 指定する値は、実行環境定義のフォルダのディレクトリからの相対パス、または絶対パスです。requirements.ymlファイルでコレクションを指定する形式は、次のとおりです:--- collections: - name: <namespace>.<collection_name>
前述の例では、<namespace>はコレクションのネームスペース(
oracle
など)、<collection_name>はインストールされるコレクションの名前(oci
など)です。 この組合せは、使用するコレクションごとに繰り返すことができます。特定のバージョン、ソース・タイプおよびソースのロケーションを次のように指定することもできます:--- collections: - name <namespace>.<collection_name> version: <version_number or "<range_identifyer><version_number>" type: <source_type>
前述の例では、<version_number>は任意のコレクション・バージョン番号にできます。 1つ以上の<range_identifyer>で指定されている場合、バージョン番号は、指定された範囲内で可能なコレクションの最新バージョンです。 たとえば、次の例は、バージョンが5.0.0以上で、6.0.0未満であることを示します:--- collections: - name: oracle.oci version: ">=5.0.0,<6.0.0" type: galaxy
次の範囲識別子を使用できます:- *
最新バージョン。 これはデフォルトです。
- !=
指定されたバージョンと等しくありません。
- ==
指定されたバージョンと全く同じ。
- >=
指定したバージョン以上。
-
>
指定されたバージョン超。
- <=
指定したバージョン以下。
- <
指定したバージョン未満。
- *
- python: この文字列値は、
pip install -r requirements.txt
コマンドでインストールされるPythonの依存関係を含むファイルへのパスです。 指定する値は、実行環境定義のフォルダのディレクトリからの相対パス、または絶対パスです。requirements.txtファイルでpython依存関係を指定する形式は、次のとおりです:
<someproject> <someproject><version_specifier><version_number> <someproject><version_specifier><version_number>,<version_specifier><version_number>
前述の例では、<someproject>はプロジェクトの名前です。 プロジェクト名のみを指定して、そのプロジェクトの最新バージョンを検索するか、または1つ以上の<version_identifier>と<verion_number>の組合せでプロジェクトを指定して、インストールするプロジェクトの特定のバージョンを返すことができます。 たとえば:requests>=2.4.2 xmltodict azure-cli-core==2.11.1
使用可能なバージョン指定子の詳細は、https://peps.python.org/pep-0440/#version-specifiersを参照してください。
- system: この文字列値は、bindep.txt要件ファイルを示します。 これはbindepで処理され、dnfに渡されます。他のプラットフォームはまだサポートされていません。 たとえば:
gcc libcurl-devel libxml2-devel python39-devel openssl-devel
ノート:
コレクションによっては、異なるバージョンのPythonをインストールする必要があります。 たとえば、ovirt.ovirt
コレクションは、Oracle Linux 9およびpython3.11-develにインストールする場合はpython3.9-devel
、Oracle Linux 8にインストールする場合はpython3.12-develが必要です。システム要件ファイルの記述およびオプションでバージョン制約の指定の詳細は、https://docs.opendev.org/opendev/bindep/latest/readme.html#writing-requirements-filesを参照してください。
- galaxy: このパラメータは、コレクションの依存関係を定義するファイルへのパスです。 Builderユーティリティは、これらを
- additional_build_steps: additional_build_stepsセクションには、メイン・ビルド・ステップの前(準備)または後(追加)のいずれかで、追加のコマンドを指定できます。 構文は次のいずれかである必要があります:
- 複数行の文字列(上の前頭のセクションに示されている例)
- リスト(appendで表示)
- EE_BASE_IMAGE: このパラメータには、
- ファイルを保存します。
- 必要に応じて、ansible.cfgおよび依存関係ファイルを実行します。
- 作業ディレクトリから次のコマンドを実行します:
ansible-builder build -t <repository:tag>
前述の例では、<repository:tag>はカスタム実行環境のリポジトリおよびタグです。 たとえば、<hostname.domain>/custom_ee:latestです。ノート:
書式1が非推奨であることを示す警告メッセージが表示されます。 かわりにフォーマット3を使用することを検討してください。 詳細については、「フォーマット3を使用したカスタム実行環境の構成」を参照してください。ノート:
ビルダー・ユーティリティ・プロセスの詳細は、コマンドの最後に -v 3オプションを使用して最も多くの情報を提供し、1は最小です。 たとえば、ansible-builder build -v 3
- イメージが作成されていることを確認します。 次のPodmanコマンドを実行します:
podman images
フォーマット2を使用したカスタム実行環境の構成
- Builderユーティリティをインストールしたホストで、Builderユーティリティの作業ディレクトリを作成します。 たとえば、
mkdir ~/builder-utility cd ~/builder-utility
- 次のファイルを作成します。
touch ansible.cfg execution-environment.yml requirements.yml requirements.txt bindep.txt
- execution-environment.ymlファイルで、次のパラメータを追加します:
--- version: 2 build_arg_defaults: ANSIBLE_GALAXY_CLI_COLLECTION_OPTS: "--ignore-certs" ansible_config: 'ansible.cfg' dependencies: galaxy: requirements.yml python: requirements.txt system: bindep.txt additional_build_steps: prepend: | RUN whoami RUN cat /etc/os-release append: - RUN echo This is a post-install command! - RUN ls -la /etc images: base_image: name: container-registry.oracle.com/oracle_linux_automation_manager/olam-ee:2.3-<OS_version> builder_image: name: container-registry.oracle.com/oracle_linux_automation_manager/olam-builder:2.3-<OS_version>
この例では、次のようになります。- ANSIBLE_GALAXY_CLI_COLLECTION_OPTS:
"--ignore-certs"
option.Thisパラメータを使用すると、自己署名証明書を使用せずにリポジトリからイメージを取得できます。 - ansible_config:
ansible.cfg
ファイルを指定して、Private Automation Hubサーバーのトークンおよびその他の設定を渡すことができます。 構成ファイルのパスを文字列としてリストすると、ビルドの初期フェーズでビルド引数として含められます。 - dependencies: このセクションは、最後のコンテナにインストールする必要があるAnsible Galaxy、Pythonおよびシステム依存関係を定義するディクショナリ値です。 このセクションの有効なキーは次のとおりです:
- galaxy: このパラメータは、コレクションの依存関係を定義するファイルへのパスです。 Builderユーティリティは、これらを
ansible-galaxy collection install -r requirements.yml
コマンドでインストールします。 指定する値は、実行環境定義のフォルダのディレクトリからの相対パス、または絶対パスです。requirements.ymlファイルでコレクションを指定する形式は、次のとおりです:--- collections: - name <namespace>.<collection_name>
前述の例では、<namespace>はコレクションのネームスペース(
oracle
など)、<collection_name>はインストールされるコレクションの名前(oci
など)です。 この組合せは、使用するコレクションごとに繰り返すことができます。特定のバージョン、ソース・タイプおよびソースのロケーションを次のように指定することもできます:--- collections: - <namespace>.<collection_name> version: <version_number or "<range_identifyer><version_number>" type: <source_type>
前述の例では、<version_number>は任意のコレクション・バージョン番号にできます。 1つ以上の<range_identifyer>で指定されている場合、バージョン番号は、指定された範囲内で可能なコレクションの最新バージョンです。 たとえば、次の例は、バージョンが5.0.0以上で、6.0.0未満であることを示します:--- collections: - name: oracle.oci version: ">=5.0.0,<6.0.0" type: galaxy
次の範囲識別子を使用できます:- *
最新バージョン。 これはデフォルトです。
- !=
指定されたバージョンと等しくありません。
- ==
指定されたバージョンと全く同じ。
- >=
指定したバージョン以上。
-
>
指定されたバージョン超。
- <=
指定したバージョン以下。
- <
指定したバージョン未満。
- *
- python: この文字列値は、pip install -r ...コマンドでインストールされるPython依存関係を含むファイルへのパスです。 指定する値は、実行環境定義のフォルダのディレクトリからの相対パス、または絶対パスです。
requirements.txtファイルでpython依存関係を指定する形式は、次のとおりです:
<someproject> <someproject><version_specifier><version_number> <someproject><version_specifier><version_number>,<version_specifier><version_number>
前述の例では、<someproject>はプロジェクトの名前です。 プロジェクト名のみを指定して、そのプロジェクトの最新バージョンを検索するか、または1つ以上の<version_identifier>と<verion_number>の組合せでプロジェクトを指定して、インストールするプロジェクトの特定のバージョンを返すことができます。 たとえば:requests>=2.4.2 xmltodict azure-cli-core==2.11.1
使用可能なバージョン指定子の詳細は、https://peps.python.org/pep-0440/#version-specifiersを参照してください。
- system: この文字列値は、
bindep.txt
要件ファイルを指します。 これはbindepで処理され、dnfに渡されます。他のプラットフォームはまだサポートされていません。 たとえば:gcc libcurl-devel libxml2-devel python39-devel openssl-devel
ノート:
コレクションによっては、異なるバージョンのPythonをインストールする必要があります。 たとえば、ovirt.ovirt
コレクションは、Oracle Linux 9およびpython3.11-develにインストールする場合はpython3.9-devel
、Oracle Linux 8にインストールする場合はpython3.12-develが必要です。システム要件ファイルの記述およびオプションでバージョン制約の指定の詳細は、https://docs.opendev.org/opendev/bindep/latest/readme.html#writing-requirements-filesを参照してください。
- galaxy: このパラメータは、コレクションの依存関係を定義するファイルへのパスです。 Builderユーティリティは、これらを
- additional_build_steps: additional_build_stepsセクションには、メイン・ビルド・ステップの前(準備)または後(追加)のいずれかで、追加のコマンドを指定できます。 構文は次のいずれかである必要があります:
- 複数行の文字列(上の前頭のセクションに示されている例)
- リスト(appendで表示)
- イメージ: イメージ・キーを使用して、ベース・イメージとビルダー・イメージを定義できます。 バージョン2の形式では、実行環境定義で、--container-policy CLIオプションの値に基づいて、ビルダーが結果のイメージを構築する前にシグネチャを検証する必要があるベースおよびビルダーのコンテナ・イメージを指定できます。 主なオプションは次のとおりです:
- base_image: このパラメータには、
container-registry.oracle.com/oracle_linux_automation_manager/olam-ee:2.3-<OS_version>
から取得できるベースolam-eeが必要です。OS_versionは、Oracle Linux 8またはOracle Linux 9の場合はol8
またはol9
です。 または、この目的のためにPrivate Automation Hubを構成している場合は、Private Automation Hubからこのイメージのコピーを取得することもできます。ノート:
このコンテナ・イメージの2つのバージョンは、メイン・バージョンにOCI SDKとAnsible OCIコレクションが含まれ、最小バージョンが含まれていないOracle Container Registryで使用できます。 前の例で指定したバージョンでは、メイン・バージョンが使用されます。 最小バージョンの詳細は、「Oracle Linux Automation Manager 2.3: リリース・ノート」を参照してください。 - builder_image: このパラメータにはolam-builderイメージが必要です。このイメージは、
container-registry.oracle.com/oracle_linux_automation_manager/olam-builder:2.3-<OS_version>
から取得できます。OS_versionは、Oracle Linux 8またはOracle Linux 9の場合はol8
またはol9
です。 ビルダー・コンテナ・イメージには、顧客実行環境の作成に必要なビルド・ライブラリが含まれています。 または、この目的のためにPrivate Automation Hubを構成している場合は、Private Automation Hubからこのイメージのコピーを取得することもできます。
- base_image: このパラメータには、
- ANSIBLE_GALAXY_CLI_COLLECTION_OPTS:
- ファイルを保存します。
- 必要に応じて、ansible.cfgおよび依存関係ファイルを実行します。
- 作業ディレクトリから次のコマンドを実行します:
ansible-builder build -t <repository:tag>
前述の例では、<repository:tag>はカスタム実行環境のリポジトリおよびタグです。 たとえば、<hostname.domain>/custom_ee:latestです。ノート:
書式2が非推奨であることを示す警告メッセージが表示されます。 かわりにフォーマット3を使用することを検討してください。 詳細については、「フォーマット3を使用したカスタム実行環境の構成」を参照してください。ノート:
ビルダー・ユーティリティ・プロセスの詳細は、コマンドの最後に -v 3オプションを使用して最も多くの情報を提供し、1は最小です。 たとえば、ansible-builder build -v 3
- イメージが作成されていることを確認します。 次のPodmanコマンドを実行します:
podman images
フォーマット3を使用したカスタム実行環境の構成
- Builderユーティリティをインストールしたホストで、Builderユーティリティの作業ディレクトリを作成します。 たとえば、
mkdir ~/builder-utility cd ~/builder-utility
- 次のファイルを作成します。
touch ansible.cfg execution-environment.yml requirements.yml requirements.txt bindep.txt
- execution-environment.ymlファイルで、次のパラメータを追加します:
--- version: 3 build_arg_defaults: ANSIBLE_GALAXY_CLI_COLLECTION_OPTS: '--pre --ignore-certs' dependencies: ansible_runner: package_pip: ansible-runner galaxy: requirements.yml python: requirements.txt system: bindep.txt images: base_image: name: container-registry.oracle.com/oracle_linux_automation_manager/olam-ee:2.3-<OS_version> additional_build_files: - src: ansible.cfg dest: configs additional_build_steps: prepend_galaxy: - COPY _build/configs/ansible.cfg /etc/ansible/ansible.cfg prepend_final: | RUN whoami RUN cat /etc/os-release append_final: - RUN echo This is a post-install command! - RUN ls -la /etc
この例では、次のようになります。- ANSIBLE_GALAXY_CLI_COLLECTION_OPTS:
"--ignore-certs"
option.Thisパラメータを使用すると、自己署名証明書を使用せずにリポジトリからイメージを取得できます。 - dependencies: このセクションは、最後のコンテナにインストールする必要があるAnsible Galaxy、Pythonおよびシステム依存関係を定義するディクショナリ値です。 このセクションの有効なキーは次のとおりです:
- ansible_runner: package_pip: ansible-runner: ベース・ビルド・ステージでは、
ansible-runner
コンポーネントがpackage_pip
Pythonインストーラによってインストールされるようにカスタマイズされます。 結果のカスタマイズされたベース・イメージのエフェメラル・コピーは、他のすべてのビルド・ステージのベースとして使用されます。 - galaxy: このパラメータは、コレクションの依存関係を定義するファイルへのパスです。 Builderユーティリティは、これらを
ansible-galaxy collection install -r requirements.yml
コマンドでインストールします。 指定する値は、実行環境定義のフォルダのディレクトリからの相対パス、または絶対パスです。requirements.ymlファイルでコレクションを指定する形式は、次のとおりです:--- collections: - name <namespace>.<collection_name>
前述の例では、<namespace>はコレクションのネームスペース(
oracle
など)、<collection_name>はインストールされるコレクションの名前(oci
など)です。 この組合せは、使用するコレクションごとに繰り返すことができます。特定のバージョン、ソース・タイプおよびソースのロケーションを次のように指定することもできます:--- collections: - name: <namespace>.<collection_name> version: <version_number or "<range_identifyer><version_number>" type: <source_type>
前述の例では、<version_number>は任意のコレクション・バージョン番号にできます。 1つ以上の<range_identifyer>で指定されている場合、バージョン番号は、指定された範囲内で可能なコレクションの最新バージョンです。 たとえば、次の例は、バージョンが5.0.0以上で、6.0.0未満であることを示します:--- collections: - name: oracle.oci version: ">=5.0.0,<6.0.0" type: galaxy - name: ovirt.ovirt
次の範囲識別子を使用できます:- *最新版です。 これはデフォルトです。
- !=指定したバージョンと等しくありません。
- ==指定したバージョンです。
- >=指定したバージョン以上。
- >指定されたバージョンを超えています。
- <=指定したバージョン以下です。
- <指定されたバージョン未満。
- python: この文字列値は、pip install -r ...コマンドでインストールされるPython依存関係を含むファイルへのパスです。 指定する値は、実行環境定義のフォルダのディレクトリからの相対パス、または絶対パスです。
requirements.ymlファイルでpython依存関係を指定する形式は、次のとおりです:
<someproject> <someproject><version_specifier><version_number> <someproject><version_specifier><version_number>,<version_specifier><version_number>
前述の例では、<someproject>はプロジェクトの名前です。 プロジェクト名のみを指定して、そのプロジェクトの最新バージョンを検索するか、または1つ以上の<version_identifier>と<verion_number>の組合せでプロジェクトを指定して、インストールするプロジェクトの特定のバージョンを返すことができます。 たとえば:requests>=2.4.2 xmltodict azure-cli-core==2.11.1
使用可能なバージョン指定子の詳細は、https://peps.python.org/pep-0440/#version-specifiersを参照してください。
- system: この文字列値は、
bindep.txt
要件ファイルを指します。 これはbindepによって処理され、dnfに渡されます。他のプラットフォームはまだサポートされていません。 たとえば:gcc libcurl-devel libxml2-devel python39-devel openssl-devel
ノート:
コレクションによっては、異なるバージョンのPythonをインストールする必要があります。 たとえば、ovirt.ovirt
コレクションは、Oracle Linux 9およびpython3.11-develにインストールする場合はpython3.9-devel
、Oracle Linux 8にインストールする場合はpython3.12-develが必要です。
- ansible_runner: package_pip: ansible-runner: ベース・ビルド・ステージでは、
- イメージ: imagesキーを使用してベース・イメージを定義できます。 バージョン3形式では、--container-policy CLIオプションの値に基づいて、ビルダーが結果のイメージを構築する前にシグネチャを検証する必要があるベース・コンテナ・イメージを実行環境定義で指定できます。 主要なオプションはbase_imageです。 このパラメータには、
container-registry.oracle.com/oracle_linux_automation_manager/olam-ee:2.3-<OS_version>
から取得できるベースolam-eeが必要です。OS_versionは、Oracle Linux 8またはOracle Linux 9の場合はol8
またはol9
です。 または、この目的のためにPrivate Automation Hubを構成している場合は、Private Automation Hubからこのイメージのコピーを取得することもできます。ノート:
このコンテナ・イメージの2つのバージョンは、メイン・バージョンにOCI SDKとAnsible OCIコレクションが含まれ、最小バージョンが含まれていないOracle Container Registryで使用できます。 前の例で指定したバージョンでは、メイン・バージョンが使用されます。 最小バージョンの詳細は、「Oracle Linux Automation Manager 2.3: リリース・ノート」を参照してください。 - additional_build_files:
ansible.cfg
ファイルを指定して、Private Automation Hubサーバーのトークンおよびその他の設定を渡すことができます。 このファイルは、次の形式を使用して参照されます:additional_build_files: - src: ansible.cfg dest: configs
ノート:
ansible.cfg
ファイルでPrivate Automation Hubの資格証明の指定を省略すると、Private Automation Hubはデフォルトでパブリックhttps://galaxy.ansible.comに設定されます。 - additional_build_steps: 追加のコマンドは、additional_build_stepsセクションで、ビルド・ステージの前(prepend)または後(append)のいずれかに対して指定できます。 これらのステージには次のものがあります:
ベース構築ステージ: Python、pip、ansible-core、ansible-runnerなどの必須コンポーネントを使用して、指定されたベース・イメージをカスタマイズします。 これらのコンポーネントの存在を検証します。 後続のステージ用にカスタマイズされたベース・イメージのエフェメラル・コピーを作成します。 次のステップがあります。
prepend_base
: ベース・イメージをカスタマイズする前にコマンドを挿入します。append_base
: ベース・イメージのカスタマイズ後にコマンドを挿入します。
ギャラクシ・ビルド・ステージ: 定義ファイルに指定されたコレクションをダウンロードして格納します。 コレクションによって宣言されたPythonおよびシステム依存関係を収集します。 次のステップがあります。prepend_galaxy
: コレクションをダウンロードする前にコマンドを挿入します。append_galaxy
: コレクションのダウンロード後にコマンドを挿入します。
Builderビルド・ステージ: コレクションおよび定義ファイルからPython依存関係をマージします。 Pythonの依存関係をホイールとしてダウンロードしてビルドします。 後で取り付けるためのホイールを格納します。 次のステップがあります。prepend_builder
: Python依存関係をマージする前にコマンドを挿入します。append_builder
: Pythonホイールの構築後にコマンドを挿入します。
最終ビルド・ステージ: 以前にダウンロードしたコレクションをインストールします。 ビルダー・ステージ中に構築されたシステム・パッケージおよびPythonパッケージをインストールします。 次のステップがあります。prepend_final
: コレクションおよびパッケージをインストールする前にコマンドを挿入します。append_final
: コレクションおよびパッケージのインストール後にコマンドを挿入します。
各ステージでカスタム・コマンドを注入することで、特定の要件を満たすようにイメージ作成プロセスを調整したり、他のツールやシステムと統合したりできます。
- ANSIBLE_GALAXY_CLI_COLLECTION_OPTS:
- ファイルを保存します。
- 必要に応じて、
ansible.cfg
および任意の依存性ファイルを実行します。 - 作業ディレクトリから次のコマンドを実行します:
ansible-builder build -t <repository:tag>
前述の例では、<repository:tag>はカスタム実行環境のリポジトリおよびタグです。 たとえば、<hostname.domain>/custom_ee:latestです。ノート:
ビルダー・ユーティリティ・プロセスの詳細は、コマンドの最後に -v 3オプションを使用して最も多くの情報を提供し、1は最小です。 たとえば、ansible-builder build -v 3
- イメージが作成されていることを確認します。 次のPodmanコマンドを実行します:
podman images
カスタム実行環境のアップロード
- カスタム実行環境を作成したホストから、Podmanを使用して、カスタム実行環境をアップロードするPrivate Automation Hubインスタンスにログインします。 たとえば、
podman login <ip address or hostname> -u admin -p <password> --tls-verify=false
前の例では、<ip address or hostname>はPrivate Automation HubインスタンスのIPアドレスまたはホスト名、<password>はPrivate Automation Hubインスタンスの管理ユーザーのパスワードです。
- アップロードするカスタム・イメージを識別します。 たとえば、
podman images
- イメージをPrivate Automation Hubにプッシュします。 たとえば、
podman push <podman_image_id or repository:tag> <ip address or hostname/image_name:tag> --tls-verify=false
前述の例では、<podman_image_id or repository:tag>はプッシュするカスタム実行環境のイメージIDまたはリポジトリおよびタグで、<ip address or hostname/image_name:tag>はIPアドレスまたはホスト名、その後にイメージ名とPrivate Automation Hubインスタンスのタグが続きます。 たとえば、次の例では、ポッドマン・リポジトリ名とタグを使用し、その後にホスト名、イメージ名およびタグを指定して、プライベート自動化ハブ・インスタンスで使用します:podman push localhost/custom-image:2.1.3 private_automation_hub_host/custom-image:2.1.3 --tls-verify=false
次に、ポッドマン・イメージIDと、プライベート自動化ハブ・インスタンスで使用するホスト名、イメージ名およびタグを使用します:podman push 330928308c01 private_automation_hub_host/custom-image:2.1.3 --tls-verify=false
- 実行環境がPrivate Automation Hubインスタンスに存在することを確認します。 このタスクの詳細については、「実行環境詳細の表示」を参照してください。