3.3. Private Automation Hub コンテナーレジストリーへの入力
デフォルトでは、Private Automation Hub には自動化実行環境が含まれていません。コンテナーレジストリーに入力するには、コンテナーレジストリーに実行環境をプッシュする必要があります。
Private Automation Hub のリモートレジストリーに入力するには、次のワークフローに従う必要があります。
- Red Hat Ecosystem Catalog (registry.redhat.io) から自動化実行環境を取得する
- それにタグを付ける
- Private Automation Hub のリモートレジストリーにプッシュする
イメージマニフェストとファイルシステム Blob はどちらも、元々は registry.redhat.io
および registry.access.redhat.com
から直接提供されていました。2023 年 5 月 1 日以降、ファイルシステム Blob は代わりに quay.io
から提供されます。
- ネットワークポートおよびプロトコル (表 6.4. 実行環境 (EE)) を確認してください。コンテナーイメージをプルする際の問題を回避するのに役立ちます。
registry.redhat.io
または registry.access.redhat.com
への送信接続を特に有効にするすべてのファイアウォール設定にこの変更を加えます。
ファイアウォールルールを設定するときは、IP アドレスの代わりにホスト名を使用します。
この変更を行った後も、registry.redhat.io
および registry.access.redhat.com
から実行環境をプルできます。Red Hat コンテナーイメージのプルを続行するために、quay.io
にログインする必要も、quay.io
レジストリーと直接やりとりする必要もありません。
3.3.1. Automation Hub で使用する実行環境の取得
実行環境を Private Automation Hub にプッシュする前に、まず既存のレジストリーから実行環境をプルし、使用のためにタグ付けする必要があります。次の例では、Red Hat Ecosystem Catalog (registry.redhat.io) から実行環境を取得する方法を詳しく説明します。
前提条件
- registry.redhat.io から自動化実行環境をプルする権限がある。
手順
registry.redhat.io の認証情報を使用して Podman にログインします。
$ podman login registry.redhat.io
- ユーザー名およびパスワードを入力します。
実行環境をプルします。
$ podman pull registry.redhat.io/<ee_name>:<tag>
検証
先ほどプルした実行環境がリストに含まれていることを確認するには、次の手順を実行します。
ローカルストレージ内のイメージをリスト表示します。
$ podman images
- 実行環境名を確認し、タグが正しいことを確認します。
関連情報
- 実行環境の登録と取得に関する詳細は、Red Hat Ecosystem Catalog のヘルプ を参照してください。
3.3.2. Automation Hub で使用する実行環境のタグ付け
レジストリーから実行環境を取得したら、Private Automation Hub リモートレジストリーで使用するためにタグを付けます。
前提条件
- 外部レジストリーから実行環境を取得した。
- Automation Hub インスタンスの FQDN または IP アドレスがある。
手順
Automation Hub コンテナーリポジトリーを使用してローカル実行環境にタグを付けます。
$ podman tag registry.redhat.io/<ee_name>:<tag> <automation_hub_hostname>/<ee_name>
検証
ローカルストレージ内のイメージをリスト表示します。
$ podman images
- 先ほど Automation Hub の情報を使用してタグ付けした実行環境がリストに含まれていることを確認します。
3.3.3. Private Automation Hub への実行環境のプッシュ
タグ付けした実行環境を Private Automation Hub にプッシュして、新しいコンテナーを作成し、リモートレジストリーに入力できます。
前提条件
- 新規コンテナーを作成する権限がある。
- Automation Hub インスタンスの FQDN または IP アドレスがある。
手順
Automation Hub の場所および認証情報を使用して Podman にログインします。
$ podman login -u=<username> -p=<password> <automation_hub_url>
警告ログイン時に Podman がパスワードの入力を求めるようにします。ユーザー名と同時にパスワードを入力すると、パスワードがシェル履歴に公開される可能性があります。
実行環境を Automation Hub のリモートレジストリーにプッシュします。
$ podman push <automation_hub_url>/<ee_name>
トラブルシューティング
push
操作は、アップロード中にイメージレイヤーを再圧縮します。この操作は、再現性が保証されておらず、クライアントの実装に依存します。これにより、イメージレイヤーダイジェストが変更され、プッシュ操作が失敗し、Error: Copying this image requires changing layer representation, which is not possible (image is signed or the destination specifies a digest)
エラーが発生します。
検証
- Ansible Automation Platform にログインします。
-
に移動します。 - コンテナーリポジトリーリストでコンテナーを見つけます。