5.5. ジョブブランチのオーバーライド
Automation Controller では、ジョブテンプレートがソース管理に使用するブランチ、タグ、または参照を上書きできるように、プロジェクトを設定できます。
プロジェクトは、scm_branch フィールドでソースコントロールから使用するブランチ、タグ、または参照を指定します。これらは、Type Details フィールドで指定された値によって表されます。
ジョブの作成または編集時には、Allow branch override のオプションがあります。このオプションをオンにすると、プロジェクト管理者は、そのプロジェクトを使用するジョブテンプレートに対してブランチの選択を委譲できます。その際に必要なのは、プロジェクトの use_role だけです。
5.5.1. ソースツリーのコピー動作 リンクのコピーリンクがクリップボードにコピーされました!
実行されるすべてのジョブには独自のプライベートデータディレクトリーがあります。このディレクトリーには、ジョブが実行されている特定の scm_branch のプロジェクトソースツリーのコピーが含まれています。ジョブはプロジェクトフォルダーに自由に変更を加え、実行中にその変更を利用できます。このフォルダーは一時的なフォルダーであり、ジョブの実行の終了時に削除されます。
Clean オプションをオンにすると、変更されたファイルは Automation Controller のリポジトリーのローカルコピーから削除されます。これは、git または Subversion に関連する対応する Ansible モジュールの force パラメーターを使用して実行されます。
関連情報
詳細は、Ansible ドキュメントの パラメーター セクションを参照してください。
5.5.2. プロジェクトのリビジョンの動作 リンクのコピーリンクがクリップボードにコピーされました!
Automation Controller はソースコントロール管理(SCM)システムと対話し、プロジェクトのリビジョンを効果的に管理します。プロジェクトが Git などの SCM システムを使用するように設定されている場合、Automation Controller はプロジェクトファイルのリビジョンを追跡します。この追跡により、Automation Controller は、ジョブの実行中にプロジェクトファイルの正しいバージョンが使用されることを確認できます。
プロジェクトの更新中、デフォルトブランチ (プロジェクトの Source control branch フィールドで指定) のリビジョンが更新時に保存されます。ジョブにデフォルト以外の Source control branch (コミットハッシュやタグではない) を指定すると、ジョブが開始される直前に、最新のリビジョンがソースコントロールリモートから取得されます。このリビジョンは、ジョブとそのプロジェクトの更新の Source control revision フィールドに表示されます。
その結果、デフォルト以外のブランチではオフラインジョブを実行できません。ジョブがソースコントロールからの静的バージョンを実行していることを確認するには、タグまたはコミットハッシュを使用します。プロジェクトの更新ではすべてのブランチが保存されるのではなく、プロジェクトのデフォルトブランチのみが保存されます。
Source control branch フィールドは検証されていないため、有効であることを確認するためにプロジェクトを更新する必要があります。このフィールドが指定されたり、要求されたりした場合には、ジョブテンプレートの Playbook フィールドは検証されず、ジョブテンプレートを起動して、必要とされる Playbook が存在するかを確認する必要があります。
5.5.3. Git Refspec リンクのコピーリンクがクリップボードにコピーされました!
Source control refspec フィールドは、更新時にリモートからダウンロードする追加参照を指定します。例としては次のようなものがあります。
-
refs/:refs/remotes/origin/: これは、リモートのリモートを含むすべての参照を取得します。 -
refs/pull/:refs/remotes/origin/pull/(GitHub 固有): これは、すべてのプルリクエストのすべての ref を取得します。 -
refs/pull/62/head:refs/remotes/origin/pull/62/head: これは、1 つの GitHub プルリクエストの参照を取得します。
大規模なプロジェクトの場合、最初の例または 2 番目の例を使用する際はパフォーマンスへの影響を考慮してください。
Source control refspec パラメーターは、プロジェクトブランチの可用性に影響を与え、他の方法では利用できない参照へのアクセスを可能にすることができます。前の例を使用して、Source control branch からプルリクエストを提供します。これは Source control refspec フィールドがないと不可能です。
Ansible git モジュールは、デフォルトで refs/heads/ をフェッチします。つまり、Source control refspec が空白の場合、プロジェクトのブランチ、タグ、コミットハッシュを Source control branch として使用できます。Source control refspec フィールドで指定された値は、オーバーライドとして使用できる Source control branch フィールドに影響します。プロジェクトの更新 (タイプを問わず) は、追加の git fetch コマンドを実行して、その refspec をリモートからプルします。
例
最初または 2 番目の refspec サンプルを使用して、ブランチオーバーライドを有効にするプロジェクトを設定できます。Source control branch を要求するジョブテンプレートでこれを使用します。その後、クライアントは新しいプルリクエストの作成時にジョブテンプレートを起動でき、pull/N/head ブランチを提供して、ジョブテンプレートは、提供された GitHub プルリクエスト参照に対して実行できます。
関連情報
詳細は、Ansible git モジュール を参照してください。