16.4. Ansible Galaxy サポート
Automation Controller は、プロジェクトの更新の最後に、<project-top-level-directory>/roles/requirements.yml
にある roles
ディレクトリー内の requirements.yml
ファイルを検索します。
このファイルが見つかると、次のコマンドが自動的に実行されます。
ansible-galaxy role install -r roles/requirements.yml -p <project-specific cache location>/requirements_roles -vvv
このファイルを使用すると、Ansible Galaxy ロール、または独自のプロジェクトと組み合わせてチェックアウトできる他のリポジトリー内のロールを参照できるようになります。Ansible Galaxy アクセスの追加により、この結果を得るために git サブモジュールを作成する必要がなくなります。SCM プロジェクトがロールまたはコレクションとともにプライベートジョブ環境に取り込まれ、そこから実行されることを考慮すると、デフォルトで /tmp
内にプロジェクトに固有の <private job directory>
が作成されます。ただし、Settings ウィンドウの Jobs Settings タブでお使いの環境をもとに、別の Job Execution Path を指定できます。
キャッシュディレクトリーは、グローバルプロジェクトフォルダー内のサブディレクトリーです。コンテンツはキャッシュの場所から <job private directory>/requirements_roles
にコピーできます。
デフォルトでは、Automation controller には、SCM プロジェクトの roles/requirements.yml
ファイルからロールを動的にダウンロードできるようにするシステム全体の設定があります。Settings メニューの Jobs settings 画面で、Enable Role Download トグルボタンを Off に切り替えることで、この設定をオフにできます。
プロジェクトの同期が実行されるたびに、Automation controller は、プロジェクトソースおよび Galaxy または Collections のロールがプロジェクトに対して古くなっているかどうかを判断します。プロジェクトを更新すると、更新に含まれるロールがダウンロードされます。
アップストリームのロールに加えられた変更をジョブで取得する必要がある場合は、プロジェクトを更新すると取得されます。ロールの変更は、新しいコミットが provision-role のソースコントロールにプッシュされたことを意味します。
この変更をジョブで有効にするために、Playbook リポジトリーに新しいコミットをプッシュする必要はありません。プロジェクトの更新は行う必要があります。更新すると、ロールがローカルキャッシュにダウンロードされます。
たとえば、ソースコントロールに 2 つの git リポジトリーがあるとします。1 つ目は playbooks で、Automation Controller のプロジェクトがこの URL を参照します。2 つ目は provision-role で、playbooks git リポジトリー内の roles/requirements.yml
ファイルによって参照されます。
ジョブは、すべてのジョブの実行前に最新のロールをダウンロードします。パフォーマンス上の理由から、ロールとコレクションはローカルにキャッシュされます。各ジョブの実行前にアップストリームロールを再ダウンロードするには、プロジェクトの SCM Update Options で Update Revision on Launch を選択する必要があります。
更新は同期よりもはるかに前のプロセスで行われるため、これによりエラーと詳細がより速く、より論理的な場所で詳細が表示されます。
requirements.yml
ファイルの構文の詳細と例については、Ansible ドキュメントの ロール要件セクション を参照してください。
特に公開する必要があるディレクトリーがある場合は、Settings 画面の Jobs セクションの Paths to Expose to Isolated Jobs で指定できます。設定ファイル内の次のエントリーを更新することもできます。
AWX_ISOLATION_SHOW_PATHS = ['/list/of/', '/paths']
Playbook で AWX_ISOLATION_SHOW_PATHS
に定義されたキーまたは設定を使用する必要がある場合は、AWX_ISOLATION_SHOW_PATHS
を /var/lib/awx/.ssh
に追加する必要があります。
設定ファイルに変更を加えた場合には、変更の保存後に automation-controller-service restart
コマンドを使用してサービスを再起動するようにしてください。
UI では、Jobs settings ウィンドウでこれらの設定を設定できます。