11.5. コレクションのサポート
Automation Controller は、ジョブ実行でプロジェクト固有の Ansible コレクション をサポートします。collections/requirements.yml
で SCM のコレクション要件ファイルを指定すると、Automation Controller はジョブの実行前にプロジェクトを暗黙的に同期するときに、そのファイルにコレクションをインストールします。
Automation Controller には、SCM プロジェクトの collections/requirements.yml
ファイルからコレクションを動的にダウンロードできるようにするシステム全体の設定があります。この設定をオフにするには、ナビゲーションパネルの
ロールとコレクションは、パフォーマンス上の理由からローカルにキャッシュされます。ダウンロードを確実に行うためには、次のように、プロジェクトの Options で Update revision on launch を選択する必要があります。
実行環境にコレクションもインストールされている場合は、ジョブの実行時にプロジェクトの requirements.yml
ファイルで指定されたコレクションが優先されます。この優先順位は、コレクションのバージョンに関係なく適用されます。たとえば、requirements.yml
で指定されたコレクションが実行環境内のコレクションよりも古い場合は、requirements.yml
で指定されたコレクションが使用されます。
11.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/ansible/automation-hub/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 に自己署名証明書がある場合は、トグルを使用して Job Settings の Ignore Ansible Galaxy SSL Certificate Verification 設定を有効にします。署名付き証明書を使用する Automation Hub の場合は、代わりにトグルを使用して無効にします。これはグローバル設定です。
-
ソースリポジトリーが
collections/requirements.yml
ファイルにある要件ファイルで必要なコレクションを指定するプロジェクトを作成します。使用する構文の詳細は、Ansible ドキュメントの Using Ansible collections を参照してください。 -
Projects リストビューで、同期アイコン
をクリックしてこのプロジェクトを更新します。Automation Controller は、
collections/requirements.yml
ファイルから Galaxy コレクションをフェッチし、変更されたものとして報告します。このプロジェクトを使用するすべてのジョブテンプレートにコレクションがインストールされます。
Galaxy または Collections からの更新が必要な場合は、同期が実行されて必要なロールをダウンロードし、/tmp ファイルの領域がはるかに多く消費されます。大規模なプロジェクト (約 10 GB) がある場合、/tmp
のディスク領域が問題になる可能性があります。
関連情報
コレクションの詳細は、Using Ansible Collections を参照してください。
インストールを直接自動化するのに使用できるこれらの公式コレクションの 1 つを Red Hat がどのように公開しているかは、AWX Ansible Collection のドキュメントを参照してください。