第3章 自動化実行環境の公開

3.1. 既存の自動化実行環境イメージのカスタマイズ

Ansible コントローラーには、以下の 3 つのデフォルト実行環境が同梱されています。

  • Ansible 2.9 - Controller モジュール以外のコレクションがインストールされない
  • Minimal - Ansible Runner とともに最新の Ansible 2.13 リリースが含まれるが、コレクションや他の追加コンテンツは含まれない
  • EE Supported - 最小限のもの、および Red Hat がサポートするすべてのコレクションと依存関係

これらの環境は多くの自動化ユースケースに対応しますが、追加の項目を追加して、特定のニーズに合わせてこれらのコンテナーをカスタマイズできます。以下の手順では、kubernetes.core コレクションを ee-minimal デフォルトイメージに追加します。

手順

  1. Podman を使用して registry.redhat.io にログインします。

    $ podman login -u="[username]" -p="[token/hash]" registry.redhat.io
  2. 必要な自動化実行環境のベースイメージをプルできることを確認します。

    podman pull registry.redhat.io/ansible-automation-platform-22/ee-minimal-rhel8:latest
  3. 必要なベースイメージと新しい実行環境イメージに追加する追加のコンテンツを指定するように Ansible Builder ファイルを設定します。

    1. たとえば、Kubernetes Core Collection を Galaxy から イメージに追加するには、以下のように requirements.yml ファイルを入力します。

      collections:
        - kubernetes.core
    2. 定義ファイルとそのコンテンツの詳細は、定義ファイルの内訳 セクションを参照してください。
  4. 実行環境定義ファイルで、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 ファイルを作成したり、定義ファイルで参照したりする必要はありません。

  5. 以下のコマンドを使用して、新しい実行環境イメージを構築します。

    $ ansible-builder build -t registry.redhat.io/[username]/new-ee

    ここで、[username] はユーザー名を指定し、new-ee は新しいコンテナーイメージの名前を指定します。

注記

build-t を使用しない場合は、ansible-execution-env というイメージが作成され、ローカルのコンテナーレジストリーに読み込まれます。

  1. podman images コマンドを使用して、新しいコンテナーイメージが一覧に表示されていることを確認します。

    例3.2 new-ee イメージを使用した podman images コマンドの出力

    REPOSITORY          TAG     IMAGE ID      CREATED        SIZE
    localhost/new-ee    latest  f5509587efbb  3 minutes ago  769 MB
    1. コレクションがインストールされていることを確認します。

      $ podman run registry.redhat.io/[username]/new-ee ansible-doc -l kubernetes.core
    2. Automation Hub で使用するイメージにタグを付けます。

      $ podman tag registry.redhat.io/[username]/new-ee [automation-hub-IP-address]/[username]/new-ee
    3. Podman を使用して Automation Hub にログインします。

      注記

      コンテナーをプッシュするには、Automation Hub の admin または適切なコンテナーリポジトリーのアクセス許可が必要です。詳細は、Red Hat Ansible Automation Platform ドキュメントプライベート Automation Hub でのコンテナーの管理 を参照してください。

      $ podman login -u="[username]" -p="[token/hash]" [automation-hub-IP-address]
    4. イメージを自動化ハブのコンテナーレジストリーにプッシュします。

      $ podman push [automation-hub-IP-address]/[username]/new-ee
    5. 新しいイメージを自動化コントローラーインスタンスにプルします。
  2. Automation Controller に移動します。
  3. ナビゲーションバーから、AdministrationExecution Environments の順にクリックします。
  4. Add をクリックします。
  5. 適切な情報を入力して Save をクリックし、新規イメージにプルします。

    注記

    自動化ハブのインスタンスがパスワードまたはトークンで保護されている場合は、適切なコンテナーレジストリーの認証情報が設定されていることを確認してください。