16.5. コレクションのサポート
Automation controller は、ジョブ実行でプロジェクト固有の Ansible コレクション をサポートします。collections/requirements.yml
で SCM のコレクション要件ファイルを指定すると、Automation Controller はジョブの実行前にプロジェクトを暗黙的に同期するときに、そのファイルにコレクションをインストールします。
Automation controller には、SCM プロジェクトの collections/requirements.yml
ファイルからコレクションを動的にダウンロードできるようにするシステム全体の設定があります。Settings メニューの Jobs settings タブで、Enable Collections Download トグルボタンを Off に切り替えることで、この設定をオフにできます。
ロールとコレクションはパフォーマンス上の理由からローカルにキャッシュされるため、以下を確実に行うためには、プロジェクトの SCM 更新オプションで Update Revision on Launch を選択する必要があります。
実行環境にコレクションもインストールされている場合は、ジョブの実行時にプロジェクトの requirements.yml
ファイルで指定されたコレクションが優先されます。この優先順位は、コレクションのバージョンに関係なく適用されます。たとえば、requirements.yml
で指定されたコレクションが実行環境内のコレクションよりも古い場合は、requirements.yml
で指定されたコレクションが使用されます。
16.5.1. Automation Hub でのコレクションの使用
Automation Controller でコレクションコンテンツのデフォルトソースとして Automation Hub を使用するには、Automation Hub UI で API トークンを作成する必要があります。その後、このトークンを Automation Controller で指定します。
Private Automation Hub または Automation Hub に接続するには、次の手順を使用します。指定する URL のみが異なります。
手順
- https://console.redhat.com/ansible/automation-hub/token にアクセスします。
- をクリックします。
- コピー アイコンをクリックして、API トークンをクリップボードにコピーします。
次のいずれかの方法を選択して認証情報を作成します。
Automation Hub を使用するには、コピーしたトークンを使用し、トークンページの Server URL および SSO URL フィールドに表示されている URL を指す Automation Hub 認証情報を作成します。
-
Galaxy Server URL =
https://console.redhat.com/api/automation-hub/
-
AUTH SEVER URL =
https://sso.redhat.com/auth/realms/redhat-external/protocol/openid-connect/token
-
Galaxy Server URL =
Private Automation Hub を使用するには、Private Automation Hub の Repo Management ダッシュボードから取得したトークンを使用し、次に示すように公開されたリポジトリー URL を指す Automation Hub 認証情報を作成します。
さまざまな名前空間またはコレクションを含む各種リポジトリーを作成できます。Automation Hub のリポジトリーごとに、異なる認証情報を作成する必要があります。
UI からの
/https://$<hub_url>/api/galaxy/content/<repo you want to pull from>
の形式の Ansible CLI URL を Create Credential フォームの Galaxy Server URL フィールドにコピーします。UI 固有の手順については、Automation Hub の Red Hat 認定済み、検証済み、および Ansible Galaxy コンテンツ を参照してください。
コンテンツを同期する組織に移動し、新しい認証情報を組織に追加します。これにより、コンテンツを使用する認証情報またはリポジトリーに各組織を関連付けることができます。
例
次の 2 つのリポジトリーがあるとします。
-
Prod:
Namespace 1
とNamespace 2
があり、それぞれにコレクションA
とB
(namespace1.collectionA:v2.0.0
とnamespace2.collectionB:v2.0.0
) があります。 Stage:
Namespace 1
があり、そこにコレクションA
(namespace1.collectionA:v1.5.0
) だけがあります。Prod と Stage のリポジトリー URL があります。それぞれに対して認証情報を作成できます。
その後、さまざまな組織に各種レベルのアクセスを割り当てることができます。たとえば、
Developers
組織を作成して両方のリポジトリーへのアクセス権を付与し、Operations 組織には Prod リポジトリーへのアクセス権だけを付与することができます。UI 固有の手順については、 Private Automation Hub でのコンテナーリポジトリーのユーザーアクセスの設定 を参照してください。
-
Prod:
Automation Hub に自己署名証明書がある場合は、トグルを使用して Ansible Galaxy SSL 証明書検証を無視する 設定を有効にします。署名付き証明書を使用する Automation Hub の場合は、代わりにトグルを使用して無効にします。これはグローバル設定です。
ソースリポジトリーが
collections/requirements.yml
ファイルにある要件ファイルで必要なコレクションを指定するプロジェクトを作成します。使用する構文の詳細は、Ansible ドキュメントの Using Ansible collections を参照してください。-
Projects リストビューで、同期アイコン
をクリックしてこのプロジェクトを更新します。Automation controller は、
collections/requirements.yml
ファイルから Galaxy コレクションをフェッチし、変更されたものとして報告します。このプロジェクトを使用するすべてのジョブテンプレートにコレクションがインストールされます。
Galaxy または Collections からの更新が必要な場合は、同期が実行されて必要なロールをダウンロードし、/tmp ファイルの領域がはるかに多く消費されます。大規模なプロジェクト (約 10 GB) がある場合、/tmp
のディスク領域が問題になる可能性があります。
関連情報
コレクションの詳細は、Using Collections を参照してください。
インストールを直接自動化するのに使用できるこれらの公式コレクションの 1 つを Red Hat がどのように公開しているかについては、AWX Ansible Collection のドキュメントを参照してください。