4.2. 既存の実行環境イメージのカスタマイズ

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

  • Ansible 2.9 - Controller モジュール以外のコレクションがインストールされない
  • Minimal - 最新の Ansible 2.12 リリースと Ansible Runner が含まれていますが、コレクションやその他の追加コンテンツは含まれていません。
  • EE Supported: Red Hat がサポートするコンテンツがすべて含まれる

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

手順

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

    $ podman login -u="[username]" -p="[token/hash]" registry.redhat.io
  2. Automation Execution Environment イメージをプルする

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

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

      collections:
        - kubernetes.core
    2. 定義ファイルとそのコンテンツの詳細は、定義ファイルの内訳 セクションを参照してください。
  4. 実行環境定義ファイルの EE_BASE_IMAGE フィールドで、元の ee-minimal コンテナーファイルへのパスを指定します。その場合、最終的な execution-environment.yml ファイルは以下のようになります。

    例4.2 カスタマイズされた execution-environment.yml ファイル

    version: 1
    
    build_arg_defaults:
      EE_BASE_IMAGE: 'example.registry.com/my-base-ee'
    
    dependencies:
      galaxy: requirements.yml
    注記

    この例では、自動化ハブからの認定コレクションではなく、コミュニティーバージョンの kubernetes.core を使用するため、ansible.cfg を作成したり、定義ファイルで参照したりする必要はありません。

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

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

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

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

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

      REPOSITORY          TAG     IMAGE ID      CREATED        SIZE
      localhost/new-ee    latest  f5509587efbb  3 minutes ago  769 MB
  6. Ansible Navigator で新たに作成した実行環境イメージを確認します。
  7. Automation Hub で使用するイメージにタグを付けます。

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

    注記

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

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

    $ podman push [automation-hub-IP-address]/_[username]_/_new-ee_
  10. 新しいイメージを自動化コントローラーインスタンスにプルします。

    1. Automation Controller に移動します。
    2. ナビゲーションバーから、AdministrationExecution Environments の順にクリックします。
    3. Add をクリックします。
    4. 適切な情報を入力して Save をクリックし、新規イメージにプルします。

      注記

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