プライベート自動化ハブでのコンテナーの管理
プライベート自動化ハブコンテナーレジストリー (単数または複数) を設定するための管理者ワークフローおよびプロセス
概要
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
第1章 プライベート自動化ハブコンテナーレジストリーの管理
自動化ハブコンテナーレジストリーを使用して、Ansible Automation Platform インフラストラクチャーでコンテナーイメージリポジトリーを管理します。ハブは、個々のコンテナーリポジトリーにアクセスできるユーザーや、イメージのタグの変更、アクティビティーおよびイメージ層の表示、および各コンテナーリポジトリーに関連した追加情報を提供することを行うための機能を提供します。
1.1. コンテナーレジストリー
自動化ハブコンテナーレジストリーは、コンテナーイメージの保存と管理に使用されます。コンテナーイメージをビルド、または取得した後に、そのコンテナーイメージをプライベート自動化ハブのレジストリーの部分にプッシュしてコンテナーリポジトリーを作成できます。
1.2. 次のステップ
- コンテナーイメージを自動化ハブのコンテナーレジストリーにプッシュします。
- レジストリー内のコンテナーリポジトリーにアクセスできるグループを作成します。
- 新規グループをコンテナーリポジトリーに追加します。
- コンテナーリポジトリーに README を追加して、ユーザーに情報や関連リンクを提供します。
第2章 プライベート自動化ハブでコンテナーリポジトリーのユーザーアクセスの設定
プライベート自動化ハブのコンテナーリポジトリーへのユーザーアクセスを設定し、Ansible Automation Platform でイメージにアクセスして管理できるパーミッションを提供します。
2.1. 前提条件
- グループを作成して、プライベート自動化ハブでパーミッションを割り当てることができるようになっている。
2.2. コンテナーレジストリーのグループパーミッション
ユーザーアクセスにより、ユーザーがプライベート自動化ハブで管理されているコンテナーと対話する方法を細かく制御できます。以下のパーミッション一覧を使用して、コンテナーレジストリーの適切な権限を持つグループを作成します。
表2.1 プライベート自動化ハブでコンテナーを管理するのに使用されるグループ権限のリスト
パーミッション名 | 説明 |
---|---|
新規コンテナーの作成 | ユーザーは新規コンテナーを作成できます。 |
コンテナーの名前空間パーミッションの変更 | ユーザーは、コンテナーリポジトリーのパーミッションを変更できます。 |
コンテナーの変更 | ユーザーはコンテナーの情報を変更できます。 |
イメージタグの変更 | ユーザーはイメージタグを変更できます。 |
プライベートコンテナーのプル | ユーザーはプライベートコンテナーからイメージをプルできます。 |
既存コンテナーへのプッシュ | 既存のコンテナーにイメージをプッシュすることができます。 |
プライベートコンテナーの表示 | ユーザーは、プライベートとしてマークされているコンテナーを表示できます。 |
2.3. 新規グループの作成
ユーザーがシステム内の指定された機能にアクセスできるパーミッションを作成し、Automation Hub のグループに割り当てることができます。デフォルトでは、すべてのパーミッションが割り当てられており、Automation Hub のインストール時に作成された認証情報を使用して最初のログインで使用できる admins グループが Automation Hub にあります。
前提条件
- groups パーミッションがあり、グループ設定を作成および管理し、Automation Hub でアクセスすることができる。
手順
- ローカルの Automation Hub にログインします。
- User Access → Groups に移動します。
- 作成 をクリックします。
- Name を指定して Create をクリックします。
新しいグループの編集ページで、パーミッションを割り当てたり、ユーザーを追加したりできるようになりました。
2.4. グループへのパーミッションの割り当て
ユーザーがシステム内の特定の機能にアクセスできるパーミッションを Automation Hub のグループに割り当てることができます。デフォルトでは、新規グループにパーミッションが割り当てられません。最初のグループ作成時にパーミッションを追加するか、既存のグループを編集してパーミッションを追加または削除できます。
前提条件
- Change group パーミッションがあり、Automation Hub でグループパーミッションを編集できる。
手順
- ローカルの Automation Hub にログインします。
- User Access → Groups に移動します。
- グループ名をクリックします。
- Permissions タブを選択し、Edit をクリックします。
- パーミッションタイプのフィールドをクリックし、一覧に表示されるパーミッションを選択します。
- パーミッションの割り当てが完了したら、Save をクリックします。
このグループは、割り当てられたパーミッションに関連付けられている Automation Hub の機能にアクセスできるようになりました。
関連情報
- 特定のパーミッションについての詳細は、コンテナーレジストリーのグループパーミッション を参照してください。
2.5. グループへのユーザーの追加
グループの作成時にユーザーを追加したり、既存のグループにユーザーを手動で追加したりできます。本セクションでは、既存のグループにユーザーを追加する方法を説明します。
前提条件
- groups パーミッションがあり、グループ設定を作成および管理し、Automation Hub でアクセスすることができる。
手順
- Automation Hub にログインします。
- User Access → Groups に移動します。
- グループ名をクリックします。
- Users タブに移動し、Add をクリックします。
- 一覧から追加するユーザーを選択し、Add をクリックします。
これで、グループに選択したユーザーが追加されました。このユーザーは、グループに割り当てられた Automation Hub を使用するためのパーミッションを持つようになりました。
第3章 プライベート自動化ハブコンテナーレジストリーへの入力
デフォルトでは、プライベート自動化ハブにはコンテナーイメージが含まれません。コンテナーレジストリーを設定するには、コンテナーイメージレジストリーにコンテナーイメージをプッシュする必要があります。本セクションの手順では、Red Hat Ecosystem Catalog (registry.redhat.io) からイメージをプルし、それらをタグ付けして、プライベート自動化コンテナーレジストリーにプッシュする方法を説明します。
3.1. 前提条件
- 新しいコンテナーを作成して、プライベート自動化ハブにプッシュするパーミッションがある。
3.2. 自動化ハブで使用するイメージの取得
コンテナーイメージをプライベート自動化ハブにプッシュする前に、まず既存のレジストリーからプルし、使用できるようにタグを付ける必要があります。以下の例では、Red Hat Ecosystem Catalog (registry.redhat.io) からイメージをプルする方法を説明します。
前提条件
registry.redhat.io からイメージをプルするパーミッションがある。
手順
registry.redhat.io 認証情報を使用して Podman にログインします。
$ podman login registry.redhat.io
- プロンプトにユーザー名およびパスワードを入力します。
コンテナーイメージをプルします。
$ podman pull registry.redhat.io/<container_image_name>:<tag>
検証
ローカルストレージ内のイメージを一覧表示します。
$ podman images
- 最近プルしたイメージが一覧に含まれていることを確認します。
- タグが正しいことを確認します。
関連情報
- イメージの登録および取得についての詳細は、Red Hat Ecosystem Catalog Help を参照してください。
3.3. 自動化ハブで使用するイメージのタグ付け
レジストリーからイメージをプルしたら、プライベート自動化ハブコンテナーレジストリーで使用するようにタグを付けます。
前提条件
- 外部レジストリーからコンテナーイメージをプルしている。
- 自動化ハブインスタンスの FQDN または IP アドレスがある。
手順
自動化ハブコンテナーリポジトリーを使用してローカルイメージにタグを付けます。
$ podman tag registry.redhat.io/<container_image_name>:<tag> <automation_hub_URL>/<container_image_name>
検証
ローカルストレージ内のイメージを一覧表示します。
$ podman images
- 自動化ハブの情報で最近タグ付けされたイメージが一覧に含まれていることを確認します。
3.4. プライベート自動化ハブへのコンテナーイメージのプッシュ
タグ付けされたコンテナーイメージをプライベート自動化ハブにプッシュして新規コンテナーを作成し、コンテナーレジストリーにデータを入力できます。
前提条件
- 新規コンテナーを作成するパーミッションがある。
- 自動化ハブインスタンスの FQDN または IP アドレスがある。
手順
自動化ハブの場所および認証情報を使用して Podman にログインします。
$ podman login -u=<username> -p=<password> <automation_hub_url>
コンテナーイメージを自動化ハブのコンテナーレジストリーにプッシュします。
$ podman push <automation_hub_url>/<container_image_name>
注記registry.redhat.io からの署名付きイメージが自動化ハブコンテナーレジストリーにプッシュされる場合は、
--remove-signatures
フラグが必要です。push
操作は、アップロード中にイメージレイヤーを再圧縮します。これは、再現性が保証されておらず、クライアントの実装に依存します。これにより、イメージレイヤーダイジェストが変更され、プッシュ操作が失敗し、Error: Copying this image requires changing layer representation, which is not possible (image is signed or the destination specifies a digest)
エラーが発生します。
検証
- ローカルの自動化ハブにログインします。
- Container Registry に移動します。
- コンテナーリポジトリー一覧でコンテナーを見つけます。
第4章 コンテナーリポジトリーの設定
コンテナーリポジトリーを設定して説明の追加、README の追加、リポジトリーにアクセスできるグループの追加、およびタグイメージの追加を行うことができます。
4.1. 前提条件
- リポジトリーを変更するパーミッションを持つプライベート Automation Hub にログインしている。
4.2. コンテナーリポジトリーへの README の追加
コンテナーリポジトリーに README を追加して、コンテナーを操作する方法をユーザーに提供します。自動化ハブコンテナーリポジトリーは、README を作成するためのマークダウンをサポートします。デフォルトでは、README は空になります。
前提条件
- コンテナーを変更するパーミッションがある。
手順
- Execution Environments に移動します。
- コンテナーリポジトリーを選択します。
- Detail タブで、Add をクリックします。
- Raw Markdown テキストフィールドに、Markdown で README テキストを入力します。
- 終了したら Save をクリックします。
README を追加したら、Edit をクリックし、ステップ 4 および 5 を繰り返すことで、いつでも編集できます。
4.3. コンテナーリポジトリーへのアクセスの提供
イメージを使用する必要のあるユーザーにコンテナーリポジトリーへのアクセスを提供します。グループを追加すると、グループがコンテナーリポジトリーに対して持つことができるパーミッションを変更できます。このオプションを使用して、グループが割り当てられている内容に応じてパーミッションを拡張または制限できます。
前提条件
- コンテナーの名前空間のパーミッションを変更している。
手順
- Execution Environments に移動します。
- コンテナーリポジトリーを選択します。
- ウィンドウの右上にある Edit をクリックします。
Groups with access で、アクセス権を付与するグループ (単数または複数) を選択します。
- (必要に応じて) グループ名でドロップダウンを使用して、特定のグループのパーミッションを追加または削除します。
- Save をクリックします。
4.4. コンテナーイメージのタグ付け
自動化ハブコンテナーリポジトリーに保存されているイメージにタグを付けて、名前を追加します。イメージにタグが追加されない場合、自動化ハブの名前はデフォルトで latest
に設定されます。
前提条件
- change image tags のパーミッションがある。
手順
- Execution Environments に移動します。
- コンテナーリポジトリーを選択します。
- Images タブをクリックします。
-
をクリックし、Manage tags をクリックします。
テキストフィールドに新しいタグを追加し、Add をクリックします。
- (必要に応じて) そのイメージのいずれのタグの x をクリックして、current tags を削除します。
- Save をクリックします。
検証
- Activity タブをクリックし、最新の変更を確認します。
第5章 コンテナーリポジトリーからのイメージのプル
自動化ハブコンテナーレジストリーからイメージを取得し、ローカルマシンにコピーを作成します。自動化ハブは、コンテナーリポジトリーの latest
イメージごとに、podman pull
コマンドを提供します。このコマンドを端末にコピーアンドペーストするか、podman pull
を使用してイメージタグに基づいてイメージをコピーすることができます。
5.1. 前提条件
- プライベートコンテナーリポジトリーを表示し、プルするパーミッションがある。
5.2. イメージのプル
自動化ハブコンテナーレジストリーからイメージをプルして、ローカルマシンにコピーできます。自動化ハブは、コンテナーリポジトリーの latest
イメージごとに、podman pull
コマンドを提供します。
手順
- Execution Environments に移動します。
- コンテナーリポジトリーを選択します。
- Pull this image エントリーで、Copy to clipboard をクリックします。
- 端末でコマンドを貼り付けます。
検証
-
podman images
を実行して、ローカルマシンにイメージを表示します。
5.3. 関連情報
- イメージをプルする際に使用するオプションについては、Podman ドキュメント を参照してください。
第6章 コンテナーリポジトリーの削除
ローカルの Automation Hub からコンテナーリポジトリーを削除して、ディスク容量を管理します。Container Repository リストビューで、Red Hat Ansible Automation Platform インターフェイスからリポジトリーを削除できます。
6.1. 前提条件
- リポジトリーを管理する権限があります。
6.2. コンテナーリポジトリーの削除
前提条件
- リポジトリーを管理する権限があります。
手順
- Execution Environments に移動します。
-
削除するコンテナーリポジトリーで、
をクリックし、Delete をクリックします。
- 確認メッセージが表示されたら、チェックボックスをクリックして Delete をクリックします。
検証
- Execution Environments リストビューに戻ります。コンテナーリポジトリーをリストから削除する必要があります。