自動化コンテンツの管理
Automation Hub でのコレクション、コンテンツ、リポジトリーの作成および管理
概要
Red Hat ドキュメントへのフィードバック (英語のみ)
このドキュメントの改善に関するご意見がある場合や、エラーを発見した場合は、https://access.redhat.com から Technical Support チームに連絡してください。
第1章 Automation Hub の Red Hat 認定済み、検証済み、および Ansible Galaxy コンテンツ
Ansible Certified Content Collections は、Red Hat Ansible Automation Platform のサブスクリプションに含まれています。Ansible Automation Hub を使用すると、あらゆる形式の Ansible コンテンツにアクセスし、独自のコレクションセットをキュレートできます。
Red Hat Ansible コンテンツには、次の 2 種類のコンテンツが含まれます。
- Ansible Certified Content Collections
- Ansible 検証済みコンテンツコレクション
Ansible Certified Content Collections または Ansible 検証済みコンテンツコレクションの両方を使用して、独自の自動化ライブラリーを構築できます。Ansible Certified Content Collections と Ansible 検証済みコンテンツコレクションの違いの詳細は、ナレッジベースの記事 Ansible Certified Content Collections and Ansible validated content、またはこのガイドの Ansible 検証済みコンテンツ を参照してください。
このコレクションは、パッケージをダウンロードして手動で更新できます。
Ansible Automation Hub を使用して、要件ファイルを作成することで、関連する Red Hat Ansible Certified Content コレクションをユーザーに配布できます。
要件ファイルを使用してコンテンツをインストールするには、次の手順を行う必要があります。
1.1. コンテンツを同期するための Ansible Automation Hub リモートリポジトリーの設定
リモート設定を使用して、console.redhat.com
でホストされている Ansible Certified Content Collections または Ansible Galaxy のコレクションと同期するように Private Automation Hub を設定します。
community および rh-certified リポジトリーの両方に、リポジトリーが 最後に更新 された日時に関する情報を提供します。 → ページにある Edit 機能と Sync 機能を使用すると、いつでも Ansible Automation Hub に新しいコンテンツを追加できます。
→ にある各リモート設定は、Ansible Galaxy と Ansible Automation Hub の相違点
Ansible Galaxy に公開されたコレクションは、Ansible コミュニティーによって公開された最新のコンテンツです。これらのコレクションに対する共同でのサポート対応は行われていません。Ansible Galaxy は、コンテンツにアクセスする Ansible コミュニティーを対象とした、推奨されるフロントエンドのディレクトリーです。
Ansible Automation Hub に公開されたコレクションは、Red Hat と特定パートナーの共同のお客様を対象としたものです。Ansible Automation Hub のコレクションにアクセスしてダウンロードするには、Ansible サブスクリプションが必要です。認定コレクションは、Red Hat とパートナーが戦略的な関係のもと、お客様に共同でサポートを提供します。認定コレクションの中には、追加のテストと検証を受けたものもあります。
Ansible Galaxy で名前空間をリクエストする方法
Ansible Galaxy GitHub のイシューを通じて名前空間をリクエストするには、次の手順に従います。
- ansiblepartners@redhat.com にメールを送信します。
- Ansible Galaxy へのサインアップに使用した GitHub ユーザー名を記載します。
システムが検証できるように、少なくとも 1 回はログインする必要があります。
ユーザーが名前空間の管理者として追加されると、セルフサービスのプロセスを使用してさらに管理者を追加できます。
Ansible Galaxy 名前空間の命名制限
コレクションの名前空間は、Python モジュール名の規則に従う必要があります。つまり、コレクションにはすべて小文字の短い名前を付ける必要があります。読みやすさが向上する場合は、コレクション名にアンダースコアを使用できます。
1.1.1. Automation Hub でのトークン管理
コレクションをアップロードまたはダウンロードして Automation Hub と対話するには、API トークンを作成する必要があります。Automation Hub API トークンは、ansible-galaxy
クライアントを Red Hat Automation Hub サーバーに対して認証します。
Automation Hub は、Basic 認証またはサービスアカウントによる認証をサポートしていません。トークン管理を使用して認証する必要があります。
API トークンを作成する方法は、使用している Automation Hub のタイプによって異なります。
- Automation Hub はオフライントークン管理を使用します。Automation Hub でのオフライントークンの作成 を参照してください。
- Private Automation Hub は API トークン管理を使用します。Private Automation Hub での API トークンの作成 を参照してください。
- Keycloak を使用して Private Automation Hub を認証する場合は、Automation Hub でのオフライントークンの作成 の手順に従ってください。
1.1.1.1. Automation Hub でのオフライントークンの作成
Automation Hub では、トークン管理 を使用してオフライントークンを作成できます。オフライントークンは、コンテンツを保護するために使用されるシークレットトークンです。
手順
- Red Hat Hybrid Cloud Console で Ansible Automation Platform に移動します。
- ナビゲーションパネルから、 → を選択します。
- Offline token で、 をクリックします。
- アイコンをクリックしてオフライントークンをコピーします。
- API トークンをファイルに貼り付けて、セキュアな場所に保存します。
オフライントークンは、コンテンツを保護するために使用されるシークレットトークンです。トークンはセキュアな場所に保存してください。
これで、Automation Hub をデフォルトのコレクションサーバーとして設定したり、ansible-galaxy
コマンドラインツールを使用してコレクションをアップロードしたりする場合に、オフライントークンを使用できるようになりました。
オフライントークンは、非アクティブな状態が 30 日間続くと期限切れになります。新しいオフライントークンの取得の詳細は、オフライントークンをアクティブな状態に維持する を参照してください。
1.1.1.2. Private Automation Hub での API トークンの作成
Private Automation Hub では、API トークン管理を使用して API トークンを作成できます。API トークンは、コンテンツを保護するために使用されるシークレットトークンです。
前提条件
- Red Hat Ansible Automation Platform の有効なサブスクリプション認証情報。
手順
- Private Automation Hub にログインします。
- ナビゲーションパネルから、 → を選択します。
- をクリックします。
- API トークンをコピーするには、 アイコンをクリックします。
- API トークンをファイルに貼り付けて、セキュアな場所に保存します。
API トークンは、コンテンツを保護するために使用されるシークレットトークンです。API トークンはセキュアな場所に保存してください。
API トークンは、Automation Hub をデフォルトのコレクションサーバーとして設定するか、ansible-galaxy
コマンドラインツールを使用してコレクションをアップロードできるようになりました。
API トークンには有効期限がありません。
1.1.1.3. オフライントークンをアクティブな状態に維持する
オフライントークンは、30 日の非アクティブ後に有効期限が切れます。オフライントークンを定期的に更新することで、オフライントークンの有効期限が切れないようにすることができます。
オンライントークンをアクティブにしておくと、アプリケーションがユーザーに代わってアクションを実行する場合に便利です。たとえば、ユーザーがオフラインのときにアプリケーションが定期的なデータバックアップを実行できます。
オフライントークンの有効期限が切れた場合は、新しいトークンを取得 する必要があります。
手順
次のコマンドを実行して、トークンの有効期限が切れないようにします。
curl https://sso.redhat.com/auth/realms/redhat-external/protocol/openid-connect/token -d grant_type=refresh_token -d client_id="cloud-services" -d refresh_token="{{ user_token }}" --fail --silent --show-error --output /dev/null
1.1.2. rh-certified リモートリポジトリーの設定および Red Hat Ansible Certified Content Collection の同期
rh-certified リモートリポジトリーを編集して、console.redhat.com でホストされている Automation Hub から Private Automation Hub にコレクションを同期できます。デフォルトでは、Private Automation Hub rh-certified
リポジトリーには、Ansible Certified Content Collections のグループ全体の URL が含まれています。
組織で指定されたコレクションのみを使用するには、Private Automation Hub 管理者は、手動で作成した要件ファイルを rh-certified
リモートからアップロードできます。
要件ファイルに、A
、B
、および C
コレクションがあり、使用する console.redhat.com に新しいコレクション X
を追加する場合は、Private Automation Hub の要件ファイルに X
を追加して同期する必要があります。
前提条件
- 有効な Ansible リポジトリーコンテンツの変更 権限を持っている。権限の詳細は、アクセス管理と認証 を参照してください。
- console.redhat.com で Automation Hub がホストするサービスから同期 URL および API トークンを取得している。
- ポート 443 へのアクセスを設定している。これは、認定コレクションを同期するために必要です。詳細は、「インストール計画」の ネットワークポートおよびプロトコル の章にある Automation Hub の表を参照してください。
手順
- Ansible Automation Platform にログインします。
- ナビゲーションパネルから、 → を選択します。
- rh-certified リモートリポジトリーで、 をクリックします。
- URL フィールドに、Sync URL を貼り付けます。
- Token フィールドに、console.redhat.com から取得したトークンを貼り付けます。
console.redhat.com から Private Automation Hub にコレクションを同期できるようになりました。
- ナビゲーションパネルから、rh-certified の横にある アイコン ⋮ をクリックし、Sync repository を選択します。 → を選択します。
表示されるモーダルで、次のオプションを切り替えることができます。
- Mirror: リポジトリーのコンテンツを、リモートリポジトリーのコンテンツにミラーリングする場合に選択します。
- Optimize: リモートサーバーから変更が報告されないときにのみ同期する場合に選択します。
- をクリックして同期を完了します。
検証
Sync status 列が更新され、Red Hat Certified Content Collections の同期が成功したかどうかが通知されます。
- → に移動して、コレクションのコンテンツが正常に同期されたことを確認します。
1.1.3. コミュニティーリモートリポジトリーの設定および Ansible Galaxy コレクションの同期
community リモートリポジトリーを編集して、Ansible Galaxy から選択したコレクションを Private Automation Hub に同期できます。デフォルトでは、Private Automation Hub コミュニティーリポジトリーは galaxy.ansible.com/api/
に送信されます。
前提条件
- Modify Ansible repo content 権限がある。権限の詳細は、アクセス管理と認証 を参照してください。
次の例のように、Ansible Galaxy から同期するコレクションを識別する
requirements.yml
ファイルがある。requirements.yml の例
collections: # Install a collection from Ansible Galaxy. - name: community.aws version: 5.2.0 source: https://galaxy.ansible.com
手順
- Ansible Automation Platform にログインします。
- ナビゲーションパネルから、 → を選択します。
- Community リモートの Details タブで、 をクリックします。
-
YAML requirements フィールドに、
requirements.yml
ファイルの内容を貼り付けます。 requirements.yml
ファイルで識別されたコレクションを、Ansible Galaxy から Private Automation Hub に同期できるようになりました。- ナビゲーションパネルから、community リポジトリーの横にある アイコン ⋮ をクリックし、Sync repository を選択して、Ansible Galaxy と Ansible Automation Hub の間でコレクションを同期します。 → を選択します。
表示されるモーダルで、次のオプションを切り替えることができます。
- Mirror: リポジトリーのコンテンツを、リモートリポジトリーのコンテンツにミラーリングする場合に選択します。
- Optimize: リモートサーバーから変更が報告されないときにのみ同期する場合に選択します。
- をクリックして同期を完了します。
検証
Sync status 列が更新され、Ansible Automation Hub への Ansible Galaxy コレクションの同期が成功したかどうかが通知されます。
- Community を選択して同期が成功したことを確認します。 → に移動し、
1.1.4. プロキシー設定
Private Automation Hub がネットワークプロキシーの背後にある場合は、リモートでプロキシーを設定して、ローカルネットワーク外にあるコンテンツを同期できます。
前提条件
- 有効な Ansible リポジトリーコンテンツの変更 権限を持っている。権限の詳細は、アクセス管理と認証 を参照してください。
- ローカルネットワーク管理者からのプロキシー URL および認証情報を持っている。
手順
- Ansible Automation Platform にログインします。
- ナビゲーションパネルから、 → を選択します。
- rh-certified リモートまたは Community リモートで、 アイコン ⋮ をクリックし、Edit remote を選択します。
- Show advanced options ドロップダウンメニューを展開します。
- プロキシー URL、プロキシーユーザー名、およびプロキシーパスワードを適切なフィールドに入力します。
- をクリックします。
1.1.5. 要件ファイルの作成
要件ファイルを使用して、Automation Hub にコレクションを追加します。要件ファイルは YAML 形式で、Automation Hub にインストールするコレクションをリストしたものです。
標準の requirements.yml
ファイルには、次のパラメーターを含めます。
-
name
:<namespace>.<collection_name>
という形式のコレクション名 -
version
: コレクションのバージョン番号
手順
要件ファイルを作成します。
YAML 形式の要件ファイル内に、コレクション情報を次のように指定します。
collections: name: namespace.collection_name version: 1.0.0
コレクションのバージョン番号を必ず指定してください。指定しないと、すべてのコレクションバージョンを同期します。すべてのバージョンを同期すると、予想よりも多くの領域が必要になる可能性があります。
要件ファイルでコレクションを同期するには、Ansible コンテンツコレクションの同期 の 手順に従います。
1.2. Automation Hub での Ansible Content Collections の同期
コンテンツを同期するには、要件ファイルを作成し、適切なリモートにアップロードします。リモートは、外部コレクションソースからカスタムリポジトリーにコンテンツを同期できる設定です。
1.2.1. Ansible コンテンツコレクションの同期
console.redhat.com の Ansible Automation Hub で、認定および検証済みのコレクションを同期できます。
コンテンツを同期する際に、Automation Hub は他のリポジトリーの依存関係をチェックしないことに注意してください。エラーを回避するには、リモート設定を編集して依存関係のダウンロードをオフにします。詳細は、Automation Hub でのリモート設定の作成 を参照してください。
前提条件
- 有効な Ansible Automation Platform サブスクリプションがある。
- console.redhat.com の組織管理者権限がある。
- 要件ファイル を作成している。
次のドメイン名は、ファイアウォールまたはプロキシーの許可リストの一部です。これらは、Automation Hub または Galaxy サーバーに正常に接続し、コレクションをダウンロードするために必要です。
-
galaxy.ansible.com
-
cloud.redhat.com
-
console.redhat.com
-
sso.redhat.com
-
Ansible Automation Hub のリソースは、Amazon Simple Storage に保存されます。次のドメイン名が許可リストに含まれている必要があります。
-
automation-hub-prd.s3.us-east-2.amazonaws.com
-
ansible-galaxy.s3.amazonaws.com
-
- 自己署名証明書または Red Hat ドメインを使用する場合に SSL インスペクションが無効になっている。
手順
- ナビゲーションパネルから、 → を選択します。
-
同期するリモートを見つけて、鉛筆アイコン
をクリックして編集します。
- Requirements file というラベルが付けられたフィールドを検索します。そこで、要件ファイルの内容を貼り付けるか、アップロードボタンを選択してハードドライブからファイルをアップロードすることもできます。
- をクリックします。
- 同期を開始するには、ナビゲーションパネルから → を選択します。
-
同期するリポジトリーを含む行で、⋮ アイコンをクリックし、
Sync repository アイコンをクリックして、Private Automation Hub へのリモートリポジトリーの同期を開始します。
1.3. Private Automation Hub のコレクションおよびコンテンツ署名
組織の自動化管理者は、組織内の異なるグループから Ansible コンテンツコレクションの署名および公開用に Private Automation Hub を設定できます。
セキュリティーを強化するために、自動化作成者は Ansible-Galaxy CLI を設定してこのコレクションを検証し、Automation Hub へのアップロード後に変更されていないことを確認できます。
1.3.1. Private Automation Hub でのコンテンツ署名の設定
Ansible Certified Content Collections に正常に署名して公開するには、署名する Private Automation Hub を設定する必要があります。
前提条件
- GnuPG キーペアがセキュアに設定され、組織で管理されている。
- 公開鍵と秘密鍵のペアに、Private Automation Hub でコンテンツ署名を設定するのに適切なアクセス権がある。
手順
ファイル名のみを受け入れる署名スクリプトを作成します。
注記このスクリプトは署名サービスとして機能し、
PULP_SIGNING_KEY_FINGERPRINT
環境変数で指定された鍵を使用して、そのファイルの ASCII アーマー形式のgpg
デタッチ署名を生成する必要があります。スクリプトは、次の形式で JSON 構造を出力します。
{"file": "filename", "signature": "filename.asc"}
すべてのファイル名は、現在の作業ディレクトリー内の相対パスです。ファイル名は、デタッチ署名でも同じにする必要があります。
以下に例を示します。
次のスクリプトはコンテンツの署名を生成します。
#!/usr/bin/env bash FILE_PATH=$1 SIGNATURE_PATH="$1.asc" ADMIN_ID="$PULP_SIGNING_KEY_FINGERPRINT" PASSWORD="password" # Create a detached signature gpg --quiet --batch --pinentry-mode loopback --yes --passphrase \ $PASSWORD --homedir ~/.gnupg/ --detach-sign --default-key $ADMIN_ID \ --armor --output $SIGNATURE_PATH $FILE_PATH # Check the exit status STATUS=$? if [ $STATUS -eq 0 ]; then echo {\"file\": \"$FILE_PATH\", \"signature\": \"$SIGNATURE_PATH\"} else exit $STATUS fi
署名を有効にして Private Automation Hub を Ansible Automation Platform クラスターにデプロイすると、新しい UI が追加されたことがコレクションに表示されます。
automationhub_*
で始まるオプションは、Ansible Automation Platform インストーラーのインベントリーファイルを確認してください。[all:vars] . . . automationhub_create_default_collection_signing_service = True automationhub_auto_sign_collections = True automationhub_require_content_approval = True automationhub_collection_signing_service_key = /abs/path/to/galaxy_signing_service.gpg automationhub_collection_signing_service_script = /abs/path/to/collection_signing.sh
2 つの新しいキー (automationhub_auto_sign_collections および automationhub_require_content_approval) は、コレクションが Private Automation Hub にアップロードされた後に署名および承認される必要があることを示します。
1.3.2. Private Automation Hub でのコンテンツ署名サービスの使用
Private Automation Hub でコンテンツ署名を設定した後、新しいコレクションに手動で署名したり、既存の署名を新しい署名に置き換えたりできます。この署名は、ユーザーが特定のコレクションをダウンロードする際に、そのコレクションがユーザー向けであり、認定後に変更されていないことを示すものとなります。
次のシナリオでは、Private Automation Hub でコンテンツ署名を使用できます。
- システムに自動署名が設定されていないため、手動署名プロセスを使用してコレクションに署名する必要がある場合。
- 自動的に設定されたコレクションの現在の署名が壊れているため、新しい署名が必要な場合。
- 以前に署名されたコンテンツに追加の署名が必要な場合。
- コレクションで署名をローテーションする必要がある場合。
手順
- Ansible Automation Platform にログインします。
- ナビゲーションパネルから、 → を選択します。Approval ダッシュボードが開き、コレクションのリストが表示されます。
- 承認するコレクションの横にある高評価アイコンをクリックします。表示されるモーダルで、コレクションを承認することを確認するチェックボックスをオンにし、 をクリックします。
検証
- → に移動して、署名して承認したコレクションが表示されていることを確認します。
1.3.3. 署名公開鍵のダウンロード
コレクションに署名して承認したら、Ansible Automation Platform UI から署名公開鍵をダウンロードします。公開鍵は、ローカルシステムのキーリングに追加する前にダウンロードする必要があります。
手順
- Ansible Automation Platform にログインします。
ナビゲーションパネルから、
→ を選択します。署名キーダッシュボードには、複数のキー (コレクションとコンテナーイメージ) のリストが表示されます。-
コレクションを確認するには、
collections-
で始まるキーをダウンロードします。 -
コンテナーイメージを確認するには、
container-
で始まるキーをダウンロードします。
-
コレクションを確認するには、
次のいずれかの方法を選択して、公開鍵をダウンロードします。
- アイコンをクリックして、公開鍵をダウンロードします。
- コピーする公開鍵の横にある をクリックします。
コピーした公開鍵を使用して、インストールするコンテンツコレクションを確認します。
1.3.4. コレクションを検証するための Ansible-Galaxy CLI の設定
Ansible-Galaxy CLI を設定して、コレクションを検証することができます。これにより、ダウンロードしたコレクションが組織によって承認されたものであり、Automation Hub へのアップロード後に変更されていないことを確認できます。
コレクションが Automation Hub によって署名されている場合、サーバーは、コレクションのコンテンツの検証に MANIFEST.json
を使用する前に、その信頼性を検証するために、ASCII アーマー形式の GPG デタッチ署名を提供します。ansible-galaxy
の キーリングを設定する か、--keyring
オプションでパスを指定して、署名検証をオプトインする必要があります。
前提条件
- 署名付きコレクションが Automation Hub で署名を検証するために利用できる。
- 認定コレクションが組織内の承認済みのロールによって署名できる。
- 検証用の公開鍵がローカルシステムキーリングに追加されている。
手順
ansible-galaxy
で使用するデフォルト以外のキーリングに公開鍵をインポートするには、以下のコマンドを実行します。gpg --import --no-default-keyring --keyring ~/.ansible/pubring.kbx my-public-key.asc
注記Automation Hub が提供する署名のほかに、署名ソースを要件ファイルとコマンドラインで指定することもできます。署名ソースは URI である必要があります。
追加の署名を使用して CLI で指定されたコレクション名を確認するには、次のコマンドを実行します。
ansible-galaxy collection install namespace.collection --signature https://examplehost.com/detached_signature.asc --signature file:///path/to/local/detached_signature.asc --keyring ~/.ansible/pubring.kbx
このオプションを複数回使用して、複数の署名を指定できます。
以下の例のように、要件ファイルのコレクションに、コレクションの署名キーの後に追加の署名ソースが表示されていることを確認します。
# requirements.yml collections: - name: ns.coll version: 1.0.0 signatures: - https://examplehost.com/detached_signature.asc - file:///path/to/local/detached_signature.asc ansible-galaxy collection verify -r requirements.yml --keyring ~/.ansible/pubring.kbx
Automation Hub からコレクションをインストールすると、サーバーが提供する署名はインストールされたコレクションと共に保存され、コレクションの信頼性を検証します。
-
(オプション) Ansible Galaxy サーバーにクエリーを実行せずにコレクションの内部整合性を再度確認する必要がある場合は、
--offline
オプションを使用して、以前に使用したのと同じコマンドを実行します。
コレクションの命名に関する推奨事項
company_name.product
形式でコレクションを作成します。この形式は、複数の製品が会社の名前空間の下に異なるコレクションを持つことができることを示しています。
Automation Hub で名前空間を取得する方法
デフォルトでは、Ansible Galaxy で使用される名前空間は、Ansible パートナーチームによって Automation Hub でも使用されます。質問や説明は、ansiblepartners@redhat.com までお問い合わせください。
1.4. Ansible 検証済みコンテンツ
Red Hat Ansible Automation Platform には、既存の Red Hat Ansible Certified Content を補完する Ansible 検証済みコンテンツが含まれています。
Ansible 検証済みコンテンツを使用すると、エキスパートが推奨する方法に従って、Red Hat と信頼できるパートナーが提供する各種プラットフォーム上で運用タスクを実行できます。
1.4.1. インストーラーを使用した検証済みコレクションの設定
RPM バンドルインストーラーをダウンロードして実行すると、認定および検証済みのコレクションが自動的にアップロードされます。認定コレクションは、rh-certified
リポジトリーにアップロードされます。検証済みのコレクションは、validated
のリポジトリーにアップロードされます。
次の 2 つの変数を使用してデフォルト設定を変更できます。
-
automationhub_seed_collections
は、プリロードが有効かどうかを定義するブール値です。 -
automationhub_collection_seed_repository
は、true に設定するとアップロードするコンテンツの種類を指定できる変数です。指定できる値はcertified
またはvalidated
です。この変数がない場合、両方のコンテンツセットがアップロードされます。
デフォルト設定を変更すると、使用する他のコンテンツのプラットフォーム設定をさらに変更する必要がある場合があります。
第2章 Automation Hub でのコレクションの管理
コンテンツ作成者は、Automation Hub の名前空間を使用してコレクションをキュレートおよび管理できます。たとえば、以下を行うことができます。
- 名前空間をキュレートする権限やコレクションを Private Automation Hub にアップロードする権限を持つチームを作成する。
- コレクションのエンドユーザーの自動化タスクで役立つように、名前空間に情報とリソースを追加する。
- コレクションを名前空間にアップロードする。
- 名前空間のインポートログを確認して、コレクションのアップロードの成功または失敗と現在の承認ステータスを確認する。
コンテンツの作成方法は、自動化コンテンツの開発 を参照してください。
2.1. 名前空間を使用した Automation Hub でのコレクションの管理
名前空間とは、コンテンツコレクションをアップロードおよび公開できる Automation Hub 内の一意の場所です。Automation Hub の名前空間へのアクセスは、そこに表示されるコンテンツと関連情報を管理する権限を持つチームによって管理されます。
Automation Hub の名前空間を使用して、内部での配布と使用のために組織内で開発されたコレクションを整理できます。
名前空間を操作する場合は、コレクションを作成、編集し、名前空間にアップロードする権限を持つチームが必要です。名前空間にアップロードしたコレクションを公開して使用できるようにするには、管理者の承認が必要です。
2.1.1. コンテンツキュレーター用の新しいチームの作成
組織内のコンテンツのキュレーションを支援するために、Ansible Automation Platform に新しいチームを作成できます。このチームは、Private Automation Hub で公開するために内部で開発したコレクションに役立ちます。
コンテンツ開発者が名前空間を作成し、内部で開発したコレクションを Private Automation Hub にアップロードできるようにするには、先にチームを作成および編集し、必要な権限を割り当てる必要があります。
前提条件
- Ansible Automation Platform の管理者権限を持っており、チームを作成できる。
手順
- Ansible Automation Platform にログインします。
- ナビゲーションパネルから → を選択し、 をクリックします。
- チームの Name として Content Engineering と入力します。
- チームの Organization を選択します。
- をクリックします。新しいチームが作成され、チームの詳細ページが開きます。
- Roles タブを選択し、Automation Content タブを選択します。
- をクリックします。
- Resource type リストから Namespace を選択し、 をクリックします。
- 新しいロールを付与する名前空間を選択し、 をクリックします。
- 選択した名前空間に適用するロールを選択し、 をクリックします。
- 選択内容を確認して、 をクリックします。
割り当てた権限で新しいチームが作成されます。その後、チームにユーザーを追加できます。
- Teams ページの Users タブをクリックします。
- をクリックします。
- ユーザーを選択し、 をクリックします。
チームによるアクセス管理の詳細な手順は、「アクセス管理と認証」ガイドの チーム を参照してください。
2.1.2. 名前空間の作成
名前空間を作成して、コンテンツ開発者が Automation Hub にアップロードするコレクションを整理できます。名前空間を作成するときに、Automation Hub 内のチームをその名前空間の所有者として割り当てることができます。
前提条件
- Add Namespaces および Upload to Namespaces の権限がある。
手順
- Ansible Automation Platform にログインします。
- ナビゲーションパネルから、 → を選択します。
- Name を入力します。 をクリックし、名前空間の
- オプション: 適切なフィールドに説明、会社、ロゴの URL、リソース、または便利なリンクを入力します。
- をクリックします。
- Team Access タブを選択し、 をクリックして名前空間にロールを割り当てます。
- ロールを付与するチームを選択し、 をクリックします。
- 選択したチームに適用するロールを選択し、 をクリックします。
- 選択内容を確認して、 をクリックします。
- をクリックしてプロセスを完了します。
これで、コンテンツ開発者が新しい名前空間にコレクションをアップロードして、所有者として割り当てられたチーム内のユーザーにコレクションのアップロードを許可できるようになりました。
2.1.3. 名前空間への情報およびリソースの追加
名前空間に含まれるコレクションに付随する情報を追加し、ユーザーにリソースを提供できます。たとえば、ロゴや説明を追加したり、ユーザーを GitHub リポジトリー、問題トラッカー、その他のオンラインアセットにリンクしたりできます。また、Resources フィールドにマークダウンテキストを入力して、詳細情報を追加することもできます。これは、自動化タスクでコレクションを使用するユーザーに有用です。
前提条件
- Change Namespaces の権限がある。
手順
- Ansible Automation Platform にログインします。
- ナビゲーションパネルから、 → を選択します。
- 編集する名前空間を選択します。
- をクリックします。
- フィールドに適切な情報を入力します。
- オプション: Resources フィールドにマークダウン情報を入力します。
- をクリックします。
これで、コンテンツ開発者が新しい名前空間にコレクションをアップロードしたり、所有者として割り当てられたチーム内のユーザーにコレクションのアップロードを許可したりできるようになりました。
名前空間を作成すると、名前空間にアップロードする権限を持つチームは、承認を受けるためにコレクションの追加を開始できます。名前空間内のコレクションは、承認されると Published リポジトリーに表示されます。
2.1.4. 名前空間へのコレクションのアップロード
内部で開発されたコレクションを tar.gz
ファイル形式で Private Automation Hub 名前空間にアップロードし、Automation Hub 管理者によるレビューと承認を受けることができます。承認されると、コレクションは、Automation Hub ユーザーが表示およびダウンロードできる Published コンテンツリポジトリーに移動します。
コレクションファイル名は、<my_namespace-my_collection-1.0.0.tar.gz> という形式にしてください。
前提条件
- コレクションをアップロードできる名前空間がある。
手順
- Ansible Automation Platform にログインします。
- ナビゲーションパネルから、 → を選択し、名前空間を選択します。
- Collections タブを選択します。
- をクリックします。
- Collection file フィールドの横にある をクリックします。
- アップロードするコレクションを選択します。
以下のオプションのいずれかを選択します。
- Staging repos
- Repositories without pipeline
- をクリックします。
検証
コレクションが正常にアップロードされたか、失敗したかを確認するには、⋮ をクリックして、Imports を選択します。インポートが成功したかどうかを示すテストの概要が表示されます。
→ に移動し、 アイコン2.1.5. 名前空間インポートログの確認
名前空間にアップロードしたコレクションのステータスを確認して、プロセスの成功または失敗を確認できます。
インポートされたコレクション情報には以下が含まれます。
- Status
- 完了または失敗
- 承認ステータス
- 承認待ちまたは承認済み
- バージョン
- アップロードされたコレクションのバージョン
- インポートログ
- コレクションのインポート中に実行されたアクティビティー
前提条件
- コレクションをアップロードできる名前空間にアクセスできる。
手順
- Ansible Automation Platform にログインします。
- ナビゲーションパネルから、 → を選択します。
- 名前空間を選択します。
- ⋮ をクリックし、Imports を選択します。 アイコン
- 検索フィールドを使用するか、リストからインポートされたコレクションを見つけます。
- インポートされたコレクションをクリックします。
- コレクションのインポートの詳細を確認し、名前空間内のコレクションのステータスを確認します。
2.1.6. 名前空間の削除
不要な名前空間を削除して、Automation Hub サーバー上のストレージを管理できます。まず、依存関係のあるコレクションが、削除する名前空間に含まれていないことを確認する必要があります。
前提条件
- 削除する名前空間に、依存関係のあるコレクションがない。
- 名前空間の削除 権限がある。
手順
- Ansible Automation Platform にログインします。
- ナビゲーションパネルから、 → を選択します。
- 削除する名前空間をクリックします。
⋮ をクリックしてから、 をクリックします。
アイコン注記
削除した名前空間とその関連コレクションが削除され、名前空間のリストビューから削除されます。
2.2. Automation Hub での内部コレクションの公開プロセスの管理
Automation Hub を使用して、組織内で開発されたコンテンツコレクションを管理および公開します。コレクションを名前空間にアップロードしてグループ化できます。Published コンテンツリポジトリーに表示するには、管理者の承認が必要です。コレクションを公開すると、ユーザーはコレクションにアクセスしてダウンロードして使用できるようになります。
組織の認定基準を満たさない提出済みコレクションを拒否することもできます。
2.2.1. 承認について
ナビゲーションパネルにある Collection Approvals 機能を使用して、Automation Hub でアップロードされたコレクションを管理できます。
- Approval ダッシュボード
- デフォルトでは、Approval ダッシュボードには、Needs Review ステータスのすべてのコレクションが一覧表示されます。ここで 公開済み リポジトリーに含まれているかどうかを確認できます。
- コレクションの詳細表示
- バージョン 番号をクリックすると、コレクションの詳細情報を表示できます。
- コレクションのフィルタリング
- Namespace、Collection、または Repository でコレクションをフィルタリングして、コンテンツを見つけてそのステータスを更新します。
2.2.2. 内部公開用のコレクションの承認
内部での公開および使用のために、個々の名前空間にアップロードされたコレクションを承認できます。レビュー待ちのコレクションは、すべて
→ にあります。前提条件
- Modify Ansible repo content 権限がある。
手順
ナビゲーションパネルから、
→ を選択します。承認を必要とするコレクションのステータスは Needs review となっています。
- 確認するコレクションをリストで見つけます。検索バーを使用して、名前空間、リポジトリー、ステータスでコレクションをフィルタリングすることもできます。
- 高評価アイコンをクリックして、コレクションを承認して署名します。表示されるモーダルで選択内容を確認します。
承認されたコレクションは Published リポジトリーに移動し、ユーザーはここでそのコレクションを表示およびダウンロードして使用することができます。
2.2.3. レビュー用にアップロードされたコレクションの拒否
個別の名前空間にアップロードされたコレクションを拒否できます。レビュー待ちのコレクションは、すべて
→ にあります。承認を必要とするコレクションのステータスは Needs review となっています。
前提条件
- Modify Ansible repo content 権限がある。
手順
- ナビゲーションパネルから、 → を選択します。
- 確認するコレクションをリストで見つけます。検索バーを使用して、名前空間、リポジトリー、ステータスでコレクションをフィルタリングすることもできます。
- 低評価アイコンをクリックして、コレクションを拒否します。表示されるモーダルで選択内容を確認します。
公開を拒否するコレクションは Rejected リポジトリーに移動します。
2.3. Automation Hub によるリポジトリー管理
プラットフォーム管理者は、自動化コンテンツコレクションを作成、編集、削除し、リポジトリー間で移動できます。
2.3.1. Automation Hub のリポジトリーの種類
Automation Hub では、コレクションを検証するかどうかに応じて、次の 2 種類のリポジトリーにコレクションを公開できます。
- ステージングリポジトリー
-
名前空間にアップロードする権限を持つユーザーは、これらのリポジトリーにコレクションを公開できます。これらのリポジトリー内のコレクションは、検索ページでは使用できません。代わりに、管理者が確認できるように承認ダッシュボードに表示されます。ステージングリポジトリーは、
pipeline=staging
ラベルでマークされます。 - カスタムリポジトリー
- リポジトリーに対する書き込み権限を持つユーザーは、これらのリポジトリーにコレクションを公開できます。カスタムリポジトリーは、すべてのユーザーが表示できるパブリックリポジトリーにすることも、表示権限を持つユーザーのみが表示できるプライベートリポジトリーにすることもできます。これらのリポジトリーは承認ダッシュボードには表示されません。リポジトリー所有者が検索を有効にしている場合、コレクションは検索結果に表示されます。
デフォルトでは、Automation Hub には 1 つのステージングリポジトリーが含まれています。このリポジトリーは、コレクションのアップロード用にリポジトリーが指定されていない場合に自動的に使用されます。ユーザーは、リポジトリーの作成 時に新しいステージングリポジトリーを作成できます。
2.3.2. Automation Hub のカスタムリポジトリーの承認パイプライン
Automation Hub では、コレクションを承認して、pipeline=approved
ラベルが付いている任意のリポジトリーにプロモートできます。デフォルトでは、Automation Hub には承認済みコンテンツ用のリポジトリーが 1 つありますが、リポジトリー作成画面からさらにリポジトリーを追加するオプションもあります。pipeline=approved
ラベルが付いているリポジトリーに直接公開することはできません。コレクションは、'pipleline=approved' リポジトリーに公開される前に、まずステージングリポジトリーを通過して承認される必要があります。
- 自動承認
-
自動承認が有効になっている場合は、ステージングリポジトリーにアップロードしたコレクションが
pipeline=approved
としてマークされたすべてのリポジトリーに自動的にプロモートされます。 - 承認が必要
自動承認が無効になっている場合、管理者は承認ダッシュボードを表示して、ステージングリポジトリーのいずれかにアップロードされたコレクションを確認できます。Approved で並べ替えると、承認済みリポジトリーのリストが表示されます。管理者は、このリストから、コンテンツをプロモートする先の 1 つ以上のリポジトリーを選択できます。
承認されたリポジトリーが 1 つしかない場合は、コレクションが自動的にそのリポジトリーにプロモートされ、管理者はリポジトリーを選択するように求められません。
- 拒否
- 拒否されたコレクションは、事前にインストールされている拒否されたリポジトリーに自動的に配置されます。
2.3.3. カスタムリポジトリーへのアクセスを制限するロールベースのアクセス制御
ロールベースのアクセス制御 (RBAC) を使用して、ユーザーのロールに基づいてアクセス権を定義し、カスタムリポジトリーへのユーザーアクセスを制限します。デフォルトでは、ユーザーは Automation Hub 内のすべてのパブリックリポジトリーを表示できますが、ロールで変更アクセス権が許可されていない限り、リポジトリーを変更することはできません。同じロジックがリポジトリー上の他の操作にも適用されます。たとえば、ユーザーのロールの権限を変更することで、カスタムリポジトリーからコンテンツをダウンロードするユーザーの機能を削除できます。Automation Hub へのユーザーアクセスの管理は、アクセス管理と認証 を参照してください。
2.3.4. Automation Hub でのカスタムリポジトリーの作成
Red Hat Ansible Automation Platform を使用してリポジトリーを作成するときに、リポジトリーをプライベートに設定したり、検索結果から非表示にしたりできます。
手順
- Ansible Automation Platform にログインします。
- ナビゲーションパネルから、 → を選択します。
- をクリックします。
- リポジトリーの Name を入力します。
- Description フィールドに、リポジトリーの目的を記述します。
変更を加えたときに以前のバージョンのリポジトリーを保持するには、Retained number of versions というフィールドに数字を入力します。保持されるバージョンの数は、0 から無制限までの範囲で指定できます。すべてのバージョンを保存するには、これを null に設定したままにします。
注記カスタムリポジトリーへの変更で問題が発生した場合は、保持している 別のリポジトリーバージョンに戻す ことができます。
Pipeline フィールドで、リポジトリーのパイプラインを選択します。このオプションでは、コレクションをリポジトリーに公開できるユーザーを定義します。
- Staging
- 誰でも自動化コンテンツをリポジトリーに公開できます。
- Approved
- このリポジトリーに追加されたコレクションは、ステージングリポジトリーを介して承認プロセスを通過する必要があります。自動承認が有効になっていると、ステージングリポジトリーにアップロードされたコレクションは、承認されたすべてのリポジトリーに自動的にプロモートされます。
- None
- リポジトリーに対する権限を持つすべてのユーザーがリポジトリーに直接公開できます。このリポジトリーは承認パイプラインには含まれません。
- オプション: 検索結果からリポジトリーを非表示にするには、Hide from search を選択します。
- オプション: リポジトリーをプライベートにするには、Make private を選択します。これにより、リポジトリーを表示する権限を持たない人に対してリポジトリーが非表示になります。
- リモートリポジトリーのコンテンツをこのリポジトリーに同期するには、Remote フィールドで、カスタムリポジトリーに含めるコレクションが含まれているリモートを選択します。詳細は、リポジトリーの同期 を参照してください。
- をクリックします。
次のステップ
リポジトリーが作成されると、詳細ページが表示されます。
ここから、リポジトリーへのアクセスを提供したり、コレクションを確認または追加したり、カスタムリポジトリーの保存されたバージョンを操作したりできます。
2.3.5. カスタム Automation Hub リポジトリーへのアクセスの提供
デフォルトでは、プライベートリポジトリーと自動化コンテンツコレクションは、システム内のすべてのユーザーに対して非表示になります。パブリックリポジトリーはすべてのユーザーが表示できますが、変更することはできません。この手順を使用して、カスタムリポジトリーへのアクセスを提供します。
手順
- Private Automation Hub にログインします。
- ナビゲーションパネルから、 → を選択します。
- リスト内のリポジトリーをクリックし、Team Access タブを選択します。
- をクリックします。
- ロールを付与するチームを選択し、 をクリックします。
- 選択したチームに適用するロールを選択し、 をクリックします。
- 選択内容を確認して、 をクリックします。
- をクリックしてプロセスを完了します。
ユーザーアクセスの実装の詳細は、アクセス管理と認証 を参照してください。
2.3.6. Automation Hub リポジトリーへのコレクションの追加
リポジトリーを作成したら、自動化コンテンツコレクションの追加を開始できます。
手順
- ナビゲーションパネルから、 → を選択します。
- リスト内のリポジトリーをクリックします。
- Collection versions タブを選択します。
- をクリックし、リポジトリーに追加するコレクションを選択します。
- をクリックします。
2.3.7. 別の Automation Hub リポジトリーバージョンに戻す
自動化コンテンツコレクションをリポジトリーに追加またはリポジトリーから削除すると、新しいバージョンが作成されます。リポジトリーへの変更によって問題が発生した場合は、以前のバージョンに戻すことができます。元に戻すことは安全な操作です。元に戻しても、コレクションはシステムから削除されず、リポジトリーに関連付けられたコンテンツが変更されます。保存するバージョンの数は、リポジトリーの作成 時に、Retained number of versions 設定で定義します。
手順
- Ansible Automation Platform にログインします。
- ナビゲーションパネルから、 → を選択します。
- リスト内のリポジトリーをクリックし、Versions タブを選択します。
- 元に戻すバージョンを見つけて、⋮ をクリックし、Revert to this version を選択します。 アイコン
- 選択内容を確定をするチェックボックスをオンにして、 をクリックします。
2.4. Automation Hub でのリモート設定の管理
Automation Hub を実行している任意のサーバーにリモート設定をセットアップできます。リモート設定を使用すると、外部コレクションソースからカスタムリポジトリーにコンテンツを同期できます。
2.4.1. Automation Hub でのリモート設定の作成
Red Hat Ansible Automation Platform を使用して、外部のコレクションソースへのリモート設定を作成できます。その後、そのコレクションのコンテンツをカスタムリポジトリーに同期できます。
手順
- Ansible Automation Platform にログインします。
- ナビゲーションパネルから、 → を選択します。
- をクリックします。
- リモート設定の Name を入力します。
特定のリポジトリーのパスを含む、リモートサーバーの URL を入力します。
注記リモートサーバーの URL とリポジトリーパスを見つけるには、⋮ を選択して、 を選択します。
→ に移動し、 アイコン- 署名されたコレクションのみを同期するには、Signed collections only ボックスをオンにします。
- 依存関係を同期するには、Sync all dependencies ボックスをオンにします。依存関係の同期をオフにするには、このボックスをオフのままにします。
外部コレクションへのアクセスに必要な Token または Username と Password を入力して、リモートサーバーへの認証情報を設定します。
注記ナビゲーションパネルからトークンを生成するには、
→ を選択し、 をクリックして、ロードされたトークンをコピーします。- console.redhat.com からコレクションにアクセスするには、SSO URL を入力してアイデンティティプロバイダー (IdP) にサインインします。
カスタムリポジトリーと同期するコレクションとバージョン範囲を指定するために、要件ファイル を選択または作成します。たとえば、kubernetes と AWS コレクションのバージョン 5.0.0 以降のみをダウンロードする場合、要件ファイルは次のようになります。
Collections: - name: community.kubernetes - name: community.aws version:”>=5.0.0”
オプション: リモートをさらに設定するには、Show advanced options で利用可能なオプションを使用します。
- 組織に企業プロキシーが設定されている場合は、Proxy URL、Proxy Username、および Proxy Password を入力します。
- TLS validation チェックボックスを使用して、トランスポート層セキュリティーを有効または無効にします。
- 認証にデジタル証明書が必要な場合は、Client key と Client certificate を入力します。
- サーバーに自己署名 SSL 証明書を使用している場合は、認証に使用される PEM エンコードされたクライアント証明書を CA certificate フィールドに入力します。
- このリモートのコレクションをダウンロードできる速度を高速化するには、Download concurrency フィールドで同時にダウンロードできるコレクションの数を指定します。
このリモートで 1 秒あたりのクエリー数を制限するには、Rate Limit を指定します。
注記一部のサーバーには特定の流量制御が設定されている場合があり、制限を超えると同期が失敗します。
2.4.2. リモート設定へのアクセスの提供
リモート設定を作成した後、それを使用できるようにするには、その設定へのアクセスを提供する必要があります。
手順
- Ansible Automation Platform にログインします。
- ナビゲーションパネルから、 → を選択します。
- リスト内のリポジトリーをクリックし、Team Access タブを選択します。
- をクリックします。
- ロールを付与するチームを選択し、 をクリックします。
- 選択したチームに適用するロールを選択し、 をクリックします。
- 選択内容を確認して、 をクリックします。
- をクリックしてプロセスを完了します。
2.5. Automation Hub でのリポジトリーの同期
ある Automation Hub から別のオートメーションハブにリポジトリーを同期することで、関連する自動化コレクションコンテンツをユーザーに配布できます。最新のコレクション更新を確実に入手するには、カスタムリポジトリーをリモートと定期的に同期してください。
手順
- Ansible Automation Platform にログインします。
- ナビゲーションパネルから、 → を選択します。
リストでリポジトリーを見つけて、⋮ をクリックし、Sync repository を選択します。
アイコン設定されたリモート内のすべてのコレクションがカスタムリポジトリーにダウンロードされます。コレクションの同期のステータスを確認するには、ナビゲーションパネルから
→ を選択します。注記リポジトリーの同期をリモート内の特定のコレクションに制限するには、requirements.yml ファイルを使用してプルする特定のコレクションを指定します。詳細は、Create a remote を参照してください。
関連情報
要件ファイルの使用の詳細は、要件ファイルの作成 を参照してください。
2.6. Automation Hub でのコレクションのエクスポートとインポート
Ansible Automation Hub は、自動化コンテンツコレクションをリポジトリー内に保存します。これらのコレクションは、自動化コンテンツ作成者によってバージョン管理されます。同じコレクションの多くのバージョンが、同じまたは異なるリポジトリーに同時に存在することがあります。
コレクションは、インポートおよびエクスポートできる .tar ファイルとして保存されます。この保存形式により、以前に作成してエクスポートしたコレクションと同じものを、新しいリポジトリーに確実にインポートできます。
2.6.1. Automation Hub での自動化コンテンツコレクションのエクスポート
コレクションが完成したら、組織全体の他のユーザーに配布できる場所にコレクションをインポートできます。
手順
- Ansible Automation Platform にログインします。
- ナビゲーションパネルから、Collections ページには、すべてのリポジトリーにわたるすべてのコレクションが表示されます。特定のコレクションを検索できます。 → を選択します。
- エクスポートするコレクションをクリックします。コレクションの詳細ページが開きます。
- Install タブから、Download tarball を選択します。.tar ファイルがデフォルトのブラウザーのダウンロードフォルダーにダウンロードされます。これで、選択した場所にインポートできるようになります。
2.6.2. Automation Hub での自動化コンテンツコレクションのインポート
自動化コンテンツ作成者は、カスタムリポジトリーで使用するためにコレクションをインポートできます。カスタムリポジトリーでコレクションを使用するには、まずコレクションを名前空間にインポートして、Automation Hub 管理者が承認できるようにする必要があります。
手順
- Ansible Automation Platform にログインします。
- ナビゲーションパネルから、Namespaces ページには、使用可能なすべての名前空間が表示されます。 → を選択します。
- コレクションを追加する名前空間を選択します。
- Collections タブを選択します。
- をクリックします。
- コレクションファイルを入力または参照して選択します。
- コレクションを追加するリポジトリーパイプラインを選択します。選択肢は、Staging repos と Repositories without pipeline です。
Imports 画面にテストの概要が表示され、コレクションのアップロードが成功したか失敗したかが通知されます。インポートを確認するには、名前空間で アイコン ⋮ をクリックし、Imports を選択します。
注記コレクションが承認されていない場合は、コレクションが公開リポジトリーに表示されません。
関連情報
- コレクションとリポジトリーの承認の詳細は、承認パイプライン を参照してください。
第3章 Private Automation Hub でのコンテナーの管理
Private Automation Hub のリモートレジストリーとリモートリポジトリーを設定するための管理者のワークフローとプロセスを説明します。
3.1. Private Automation Hub リモートレジストリーの管理
Automation Hub リモートレジストリーを使用して、Ansible Automation Platform インフラストラクチャー内のコンテナーイメージリポジトリーを管理します。Automation Hub を使用して次のタスクを実行できます。
- 個々のコンテナーリポジトリーにアクセスできるユーザーを制御する
- イメージのタグを変更する
- アクティビティーとイメージレイヤーを表示する
- 各コンテナーリポジトリーに関連する追加情報を提供する
3.1.1. コンテナーレジストリー
Automation Hub リモートレジストリーは、実行環境の保存と管理に使用します。実行環境を構築または取得したら、その実行環境を Private Automation Hub のレジストリー部分にプッシュして、コンテナーリポジトリーを作成できます。
次のステップ
- 実行環境を Automation Hub リモートレジストリーにプッシュします。
- レジストリー内のコンテナーリポジトリーにアクセスできるグループを作成します。
- 新規グループをコンテナーリポジトリーに追加します。
- コンテナーリポジトリーに README を追加して、ユーザーに情報や関連リンクを提供します。
3.2. Private Automation Hub でコンテナーリポジトリーのユーザーアクセスを設定する
Ansible Automation Platform の実行環境にアクセスして管理できるユーザーを決定するには、Private Automation Hub 内のコンテナーリポジトリーに対するユーザーアクセスを設定する必要があります。
3.2.1. リモートレジストリーチームの権限
ユーザーが Private Automation Hub で管理される実行環境を操作する方法を制御できます。次の権限リストを使用して、リモートレジストリーに対する適切な権限を持つチームを作成します。
権限名 | 説明 |
---|---|
新規コンテナーの作成 | ユーザーは新規コンテナーを作成できます。 |
コンテナーの名前空間の変更 | ユーザーは、コンテナーリポジトリーの権限を変更できます。 |
コンテナーの変更 | ユーザーはコンテナーの情報を変更できます。 |
実行環境のタグの変更 | ユーザーは実行環境のタグを変更できます。 |
既存コンテナーへのプッシュ | ユーザーは実行環境を既存のコンテナーにプッシュできます。 |
3.2.2. Private Automation Hub での新しいチームの作成
Private Automation Hub でチームを作成して権限を割り当てることで、ユーザーがシステム内の特定の機能にアクセスできるようになります。デフォルトでは、新しいチームには権限が割り当てられていません。チームを初めて作成するときに権限を追加することも、既存のチームを編集して権限を追加または削除することもできます。
詳細は、「アクセス管理と認証」ガイドの チーム を参照してください。
3.3. Private Automation Hub コンテナーレジストリーへの入力
デフォルトでは、Private Automation Hub には自動化実行環境が含まれていません。コンテナーレジストリーに入力するには、コンテナーレジストリーに実行環境をプッシュする必要があります。
Private Automation Hub のリモートレジストリーに入力するには、次のワークフローに従う必要があります。
- Red Hat Ecosystem Catalog (registry.redhat.io) から自動化実行環境を取得する
- それにタグを付ける
- Private Automation Hub のリモートレジストリーにプッシュする
2025 年 4 月 1 日 の時点で、quay.io
は 3 つのエンドポイントを別に追加しています。そのため、お客様はファイアウォールシステムリスト内の許可リストとブロックリストを調整して、次のエンドポイントを含める必要があります。
-
cdn04.quay.io
-
cdn05.quay.io
-
cdn06.quay.io
コンテナーイメージのプルに関する問題を回避するには、次のホスト名への送信 TCP 接続 (ポート 80 および 443) を許可する必要があります。
-
cdn.quay.io
-
cdn01.quay.io
-
cdn02.quay.io
-
cdn03.quay.io
-
cdn04.quay.io
-
cdn05.quay.io
-
cdn06.quay.io
registry.redhat.io
または registry.access.redhat.com
への送信接続を特に有効にするすべてのファイアウォール設定にこの変更を加えます。
ファイアウォールルールを設定するときは、IP アドレスの代わりにホスト名を使用します。
この変更を加えた後も、引き続き registry.redhat.io
または registry.access.redhat.com
からイメージをプルできます。Red Hat コンテナーイメージのプルを続行するために、quay.io
にログインする必要も、quay.io
レジストリーと直接やりとりする必要もありません。
詳細は、Firewall changes for container image pulls 2024/2025 を参照してください。
ネットワークポートおよびプロトコル (表 6.4. 実行環境 (EE)) を確認してください。コンテナーイメージをプルする際の問題を回避するのに役立ちます。
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 にプッシュして、新しいコンテナーを作成し、リモートレジストリーに入力できます。
前提条件
- 新規コンテナーを作成する権限がある。
- Ansible Automation Platform インスタンスの FQDN または IP アドレスがある。
手順
Ansible Automation Platform の場所と認証情報を使用して Podman にログインします。
$ podman login -u=<username> -p=<password> <aap_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 にログインします。
- → に移動します。
- コンテナーリポジトリーリストでコンテナーを見つけます。
3.4. コンテナーリポジトリーの設定
コンテナーリポジトリーを設定する際には、説明の追加、README の追加、リポジトリーにアクセスできるチームの追加、および自動化実行環境へのタグ付けを行う必要があります。
3.4.1. リモートレジストリーを設定するための前提条件
- Ansible Automation Platform にログインしている。
- リポジトリーを変更する権限がある。
3.4.2. コンテナーリポジトリーへの README の追加
コンテナーリポジトリーに README を追加して、コンテナーを操作する方法をユーザーに提供します。Automation Hub コンテナーリポジトリーは、README を作成するためのマークダウンをサポートします。デフォルトでは、README は空です。
前提条件
- コンテナーを変更する権限がある。
手順
- Ansible Automation Platform にログインします。
- ナビゲーションパネルから、 → を選択します。
- 実行環境を選択します。
- Detail タブで、 をクリックします。
- Raw Markdown テキストフィールドに、Markdown で README テキストを入力します。
- 完了したら、 をクリックします。
README を追加したら、
をクリックし、ステップ 4 および 5 を繰り返すことで、いつでも編集できます。3.4.3. 自動化実行環境へのアクセスの提供
イメージを操作する必要があるユーザーに、自動化実行環境へのアクセスを提供します。チームを追加すると、チームがコンテナーリポジトリーに対して持つことができる権限を変更できます。この方法を使用すると、チームに割り当てられている内容に基づいて権限を拡張または制限できます。
前提条件
- コンテナーの名前空間の変更 権限がある。
手順
- Ansible Automation Platform にログインします。
- ナビゲーションパネルから、 → を選択します。
- 自動化実行環境を選択します。
- Team Access タブから、 をクリックします。
- アクセスを許可するチームを選択し、 をクリックします。
- この実行環境に追加するロールを選択し、 をクリックします。
- をクリックします。
3.4.4. コンテナーイメージのタグ付け
Automation Hub コンテナーリポジトリーに保存されている自動化実行環境に追加の名前を指定するには、自動化実行環境にタグを付けます。自動化実行環境にタグが追加されていない場合、Automation Hub によってデフォルトで名前が latest
に設定されます。
前提条件
- 自動化実行環境のタグの変更 権限がある。
手順
- ナビゲーションパネルから、 → を選択します。
- 自動化実行環境を選択します。
- Images タブをクリックします。
- ⋮ をクリックし、 をクリックします。 アイコン
- テキストフィールドに新しいタグを追加し、 をクリックします。
- (必要に応じて) そのイメージのいずれのタグの current tags を削除します。 をクリックして、
検証
- Activity タブをクリックし、最新の変更を確認します。
3.4.5. 認証情報の作成
パスワードまたはトークンで保護されたレジストリーから自動化実行環境のイメージをプルするには、認証情報を作成する必要があります。
Ansible Automation Platform の以前のバージョンでは、実行環境イメージを格納するためにレジストリーをデプロイする必要がありました。Ansible Automation Platform 2.0 以降のシステムは、リモートレジストリーがすでに稼働していると想定して動作します。実行環境イメージを格納するには、選択したリモートレジストリーにのみ認証情報を追加します。
手順
- Ansible Automation Platform にログインします。
- ナビゲーションパネルから、 → → を選択します。
- 新しい認証情報を作成するために、 をクリックします。
- 認可の Name、Description、Organization を入力します。
- Credential Type ドロップダウンで、Container Registry を選択します。
- Authentication URL を入力します。これはリモートレジストリーのアドレスです。
- リモートレジストリーにログインするために必要な Username と Password or Token を入力します。
- オプション: SSL 検証を有効にするには、Verify SSL を選択します。
- をクリックします。
組織、ユーザー、またはチームの少なくとも 1 つのフィールドに入力する必要があります。その場合は、ユーザーインターフェイスから入力します。
3.5. コンテナーリポジトリーからのイメージのプル
Automation Hub リモートレジストリーから自動化実行環境をプルして、ローカルマシンにコピーします。Automation Hub には、コンテナーリポジトリー内の各 latest
自動化実行環境の podman pull
コマンドが用意されています。このコマンドをコピーしてターミナルに貼り付けることも、podman pull
を使用して自動化実行環境のタグに基づいて自動化実行環境をコピーすることもできます。
3.5.1. イメージのプル
Automation Hub リモートレジストリーから自動化実行環境をプルして、ローカルマシンにコピーできます。
前提条件
- プライベートコンテナーリポジトリーを表示およびプルする権限がある。
手順
- パスワードまたはトークンで保護されたレジストリーから自動化実行環境をプルする場合は、自動化実行環境をプルする前に 認証情報を作成 します。
- ナビゲーションパネルから、 → を選択します。
- 自動化実行環境を選択します。
- Pull this image エントリーで、 をクリックします。
- 端末でコマンドを貼り付けます。
検証
-
podman images
を実行して、ローカルマシンにイメージを表示します。
3.5.2. コンテナーリポジトリーからのイメージの同期
Automation Hub リモートレジストリーから自動化実行環境をプルして、イメージをローカルマシンに同期できます。リモートレジストリーから自動化実行環境を同期するには、まずリモートレジストリーを設定する必要があります。
前提条件
プライベートコンテナーリポジトリーを表示およびプルする権限がある。
手順
- ナビゲーションパネルから、 → を選択します。
- https://registry.redhat.io をレジストリーに追加します。
認証に必要な認証情報を追加します。
注記リモートレジストリーの中には、流量制御を積極的に行っているものもあります。流量制御は Advanced Options で設定します。
- ナビゲーションパネルから、 → を選択します。
- ページヘッダーの をクリックします。
取得元のレジストリーを選択します。Name フィールドに、ローカルレジストリーに表示される自動化実行環境の名前が表示されます。
注記Upstream name フィールドは、リモートサーバー上のイメージの名前です。たとえば、アップストリーム名が "alpine" に設定され、Name フィールドが "local/alpine" の場合、alpine イメージがリモートからダウンロードされ、"local/alpine" に名前が変更されます。
- 追加または除外するタグのリストを設定します。多数のタグを持つ自動化実行環境を同期すると、同期に時間がかかり、大量のディスク領域が使用されます。
関連情報
- レジストリーのリストは、Red Hat コンテナーレジストリーの認証 を参照してください。
- イメージをプルする際に使用するオプションは、What is Podman? ドキュメントを参照してください。
3.6. 署名済みコンテナーの操作
自動化実行環境は、Ansible Automation Platform がジョブを実行するために使用するコンテナーイメージです。このコンテンツを Private Automation Hub にダウンロードし、組織内で公開できます。
3.6.1. コンテナー署名用のシステムのデプロイ
コンテナー署名を実行できるようにシステムをデプロイするには、まず 自動化コンテンツ収集とコンテナー署名が有効 になっていることを確認します。その後、署名スクリプトを作成するか、手動で 実行環境を追加して署名 できます。
インストーラーは、インストーラーが配置されているサーバーと同じサーバー上でスクリプトとキーを探します。
手順
ターミナルから署名スクリプトを作成し、スクリプトパスをインストーラーパラメーターとして渡します。
例:
#!/usr/bin/env bash # pulp_container SigningService will pass the next 4 variables to the script. MANIFEST_PATH=$1 FINGERPRINT="$PULP_SIGNING_KEY_FINGERPRINT" IMAGE_REFERENCE="$REFERENCE" SIGNATURE_PATH="$SIG_PATH" # Create container signature using skopeo skopeo standalone-sign \ $MANIFEST_PATH \ $IMAGE_REFERENCE \ $FINGERPRINT \ --output $SIGNATURE_PATH # Optionally pass the passphrase to the key if password protected. # --passphrase-file /path/to/key_password.txt # Check the exit status STATUS=$? if [ $STATUS -eq 0 ]; then echo {\"signature_path\": \"$SIGNATURE_PATH\"} else exit $STATUS fi
Ansible Automation Platform インストーラーインベントリーファイルで、
automationhub_*
で始まるコンテナー署名のオプションを確認します。[all:vars] . . . automationhub_create_default_container_signing_service = True automationhub_container_signing_service_key = /absolute/path/to/key/to/sign automationhub_container_signing_service_script = /absolute/path/to/script/that/signs
- インストールが完了したら、Ansible Automation Platform にログインし、 → に移動します。
- container-default または container-anyname というタイトルのキーがあることを確認します。
Container-default
サービスは、Ansible Automation Platform インストーラーによって作成されます。
3.6.2. Automation Hub に対するリモートでのコンテナーの追加
次の 2 つの方法のいずれかで、コンテナーを Automation Hub にリモートで追加できます。
- リモートの作成
- 自動化実行環境の使用
手順
- Ansible Automation Platform にログインします。
- ナビゲーションパネルから、 → を選択します。
- Name フィールドに、コンテナーが存在するレジストリーの名前を入力します。
- URL フィールドに、コンテナーが存在するレジストリーの URL を入力します。
- Username フィールドに、必要に応じてユーザー名を入力します。
- Password フィールドに、必要に応じてパスワードを入力します。
- をクリックします。
3.6.3. 実行環境の追加および署名
自動化実行環境は、システムレベルの依存関係とコレクションベースのコンテンツを組み込むことを可能にするコンテナーイメージです。各実行環境では、ジョブを実行するためのカスタマイズされたイメージを使用できます。各イメージには、ジョブの実行時に必要なものだけを含めます。
手順
- ナビゲーションパネルから、 → を選択します。
- Name フィールドには、ローカルレジストリー上の実行環境の名前が表示されます。
- Upstream name フィールドは、リモートサーバー上のイメージの名前です。
- Registry で、ドロップダウンメニューからレジストリーの名前を選択します。
- オプション: Add tag(s) to include フィールドにタグを入力します。フィールドが空白の場合、すべてのタグが渡されます。どのリポジトリー固有のタグを渡すかを指定する必要があります。
- オプション: Add tag(s) to exclude フィールドに除外するタグを入力します。
- をクリックします。表示されるリストに新しい実行環境が表示されます。
新しい自動化実行環境を同期して署名します。
- ⋮ をクリックし、Sync execution environment を選択します。 アイコン
- ⋮ をクリックし、Sign execution environment を選択します。 アイコン
- 新しい実行環境をクリックします。Details ページで Signed ラベルを見つけて、実行環境が署名されていることを確認します。
3.6.4. ローカル環境からのコンテナーイメージのプッシュ
次の手順を使用して、ローカルシステム上の自動化実行環境に署名し、署名された実行環境を Automation Hub レジストリーにプッシュします。
手順
ターミナルから、Podman または現在使用しているコンテナークライアントにログインします。
> podman pull <container-name>
実行環境を取得したら、タグ (例: latest、rc、beta、またはバージョン番号 (1.0、2.3 など)) を追加します。
> podman tag <container-name> <server-address>/<container-name>:<tag name>
変更を加えた後、実行環境に署名し、Automation Hub レジストリーにプッシュし直します。
> podman push <server-address>/<container-name>:<tag name> --tls-verify=false --sign-by <reference to the gpg key on your local>
実行環境が署名されていない場合は、現在の署名が埋め込まれている場合にのみプッシュできます。または、次のスクリプトを使用して、署名せずに実行環境をプッシュすることもできます。
> podman push <server-address>/<container-name>:<tag name> --tls-verify=false
- 実行環境がプッシュされたら、 → に移動します。
- 新しい実行環境を表示するには、Refresh アイコンをクリックします。
- イメージの名前をクリックすると、プッシュされたイメージが表示されます。
トラブルシューティング
各実行環境の詳細ページには、署名されているかどうかが表示されます。詳細ページにイメージが Unsigned であることが示されている場合は、次の手順で Automation Hub から実行環境に署名できます。
- 実行環境名をクリックすると、詳細ページに移動します。
⋮ をクリックします。次の 3 つのオプションが利用可能です。
アイコン- Sign execution environment
- Use in Controller
- Delete execution environment
- ドロップダウンメニューから Sign execution environment をクリックします。
署名サービスによって実行環境が署名されます。実行環境が署名されると、ステータスが "signed" に変わります。
3.6.5. 署名済みイメージでのポリシーの使用
Podman またはその他のイメージクライアントがポリシーを使用して、特定のポリシーをその署名に割り当てることにより、イメージの有効性を保証できます。
3.6.6. Podman を使用して、イメージが特定の署名によって署名されていることを確認する
実行環境が特定の署名によって署名されていることを確認するには、まず署名がローカル環境に存在する必要があります。
手順
- ナビゲーションパネルから、 → を選択します。
- 使用している署名の横にある アイコンをクリックします。新しいウィンドウが開き、鍵がダウンロードされたことが示されます。
3.6.7. 署名を検証するためのクライアントの設定
リモートレジストリーから取得した実行環境が適切に署名されていることを確認するには、まずポリシーファイルで適切な公開鍵を使用して実行環境を設定する必要があります。
前提条件
- 署名を検証するには、クライアントに sudo 権限が設定されている必要があります。
手順
ターミナルを開き、次のコマンドを使用します。
> sudo <name of editor> /etc/containers/policy.json
表示されるファイルは次のようなものです。
{ "default": [{"type": "reject"}], "transports": { "docker": { "quay.io": [{"type": "insecureAcceptAnything"}], "docker.io": [{"type": "insecureAcceptAnything"}], "<server-address>": [ { "type": "signedBy", "keyType": "GPGKeys", "keyPath": "/tmp/containersig.txt" }] } } }
このファイルは、
quay.io
もdocker.io
も検証を実行しないことを示しています。タイプがinsecureAcceptAnything
であり、これによってデフォルトのタイプのreject
がオーバーライドされるためです。ただし、パラメーターのtype
が"signedBy"
に設定されているため、<server-address>
によって検証が実行されます。注記現在サポートされている唯一の
keyType
は GPG キーです。<server-address>
エントリーの下で、keyPath
<1> を変更してキーファイルの名前を含めます。{ "default": [{"type": "reject"}], "transports": { "docker": { "quay.io": [{"type": "insecureAcceptAnything"}], "docker.io": [{"type": "insecureAcceptAnything"}], "<server-address>": [{ "type": "signedBy", "keyType": "GPGKeys", "keyPath": "/tmp/<key file name>", "signedIdentity": { "type": "matchExact" } }] } } }
- ファイルを保存してから閉じます。
検証
- Podman または任意のクライアントを使用して、ファイルをプルします。
> podman pull <server-address>/<container-name>:<tag name> --tls-verify=false
この応答により、実行環境がエラーなしで署名されていることを確認できます。実行環境が署名されていない場合、コマンドは失敗します。
関連情報
- policy.json の詳細は、containers-policy.json のドキュメント を参照してください。
3.7. コンテナーリポジトリーの削除
Ansible Automation Platform からリモートリポジトリーを削除して、ディスク領域を管理します。Execution Environment リストビューで、Red Hat Ansible Automation Platform インターフェイスからリポジトリーを削除できます。
前提条件
- リポジトリーを管理する権限があります。
手順
- Ansible Automation Platform にログインします。
- ナビゲーションパネルから、 → を選択します。
- 削除するコンテナーリポジトリーの ⋮ をクリックし、 クリックします。 アイコン
- 確認メッセージが表示されたら、チェックボックスをクリックし、 をクリックします。
検証
- automation execution environments のリストビューに戻ります。自動化実行環境が正常に削除された場合、リストに表示されなくなります。