第3章 自動化実行環境の公開
3.1. 既存の自動化実行環境イメージのカスタマイズ
Ansible Controller には、次の 3 つのデフォルトの実行環境が含まれています。
-
Ansible 2.9
- Controller モジュール以外のコレクションがインストールされない -
Minimal
- Ansible Runner とともに最新の Ansible 2.13 リリースが含まれるが、コレクションや他の追加コンテンツは含まれない -
EE Supported
- 最小限のもの、および Red Hat がサポートするすべてのコレクションと依存関係
これらの環境は多くの自動化ユースケースに対応しますが、追加の項目を追加して、特定のニーズに合わせてこれらのコンテナーをカスタマイズできます。以下の手順では、kubernetes.core
コレクションを ee-minimal
デフォルトイメージに追加します。
手順
Podman を使用して
registry.redhat.io
にログインします。$ podman login -u="[username]" -p="[token/hash]" registry.redhat.io
必要な自動化実行環境のベースイメージをプルできることを確認します。
podman pull registry.redhat.io/ansible-automation-platform-22/ee-minimal-rhel8:latest
必要なベースイメージと新しい実行環境イメージに追加する追加のコンテンツを指定するように Ansible Builder ファイルを設定します。
たとえば、Kubernetes Core Collection を Galaxy から イメージに追加するには、以下のように
requirements.yml
ファイルを入力します。collections: - kubernetes.core
- 定義ファイルとそのコンテンツの詳細は、定義ファイルの内訳 セクションを参照してください。
実行環境定義ファイルで、
EE_BASE_IMAGE
フィールドに元のee-minimal
コンテナーの URL とタグを指定します。その場合、最終的なexecution-environment.yml
ファイルは以下のようになります。例3.1 カスタマイズされた
execution-environment.yml
ファイルversion: 1 build_arg_defaults: EE_BASE_IMAGE: 'registry.redhat.io/ansible-automation-platform-22/ee-minimal-rhel8:latest' dependencies: galaxy: requirements.yml
注記この例では、自動化ハブの認定コレクションではなく、コミュニティーバージョンの
kubernetes.core
を使用するため、ansible.cfg
ファイルを作成したり、定義ファイルで参照したりする必要はありません。以下のコマンドを使用して、新しい実行環境イメージを構築します。
$ ansible-builder build -t registry.redhat.io/[username]/new-ee
ここで、
[username]
はユーザー名を指定し、new-ee
は新しいコンテナーイメージの名前を指定します。
build
で -t
を使用しない場合は、ansible-execution-env
というイメージが作成され、ローカルのコンテナーレジストリーに読み込まれます。
podman images
コマンドを使用して、新しいコンテナーイメージが一覧に表示されていることを確認します。例3.2
new-ee
イメージを使用したpodman images
コマンドの出力REPOSITORY TAG IMAGE ID CREATED SIZE localhost/new-ee latest f5509587efbb 3 minutes ago 769 MB
コレクションがインストールされていることを確認します。
$ podman run registry.redhat.io/[username]/new-ee ansible-doc -l kubernetes.core
Automation Hub で使用するイメージにタグを付けます。
$ podman tag registry.redhat.io/[username]/new-ee [automation-hub-IP-address]/[username]/new-ee
Podman を使用して Automation Hub にログインします。
注記コンテナーをプッシュするには、Automation Hub の
admin
または適切なコンテナーリポジトリーのアクセス許可が必要です。詳細は、Red Hat Ansible Automation Platform ドキュメント の プライベート Automation Hub でのコンテナーの管理 を参照してください。$ podman login -u="[username]" -p="[token/hash]" [automation-hub-IP-address]
イメージを自動化ハブのコンテナーレジストリーにプッシュします。
$ podman push [automation-hub-IP-address]/[username]/new-ee
- 新しいイメージを自動化コントローラーインスタンスにプルします。
- Automation Controller に移動します。
-
ナビゲーションバーから、
の順にクリックします。 - をクリックします。
適切な情報を入力して
をクリックし、新規イメージにプルします。注記自動化ハブのインスタンスがパスワードまたはトークンで保護されている場合は、適切なコンテナーレジストリーの認証情報が設定されていることを確認してください。