Automation Pipelines 管理者は、パイプラインを共有することができます。これによって組織内のユーザーは、そのパイプラインを他のプロジェクトで実行したり、別のプロジェクトのパイプライン内にネストされたタスクとして追加したりできます。
共有パイプラインが役に立つ理由
パイプラインを共有すると、組織内のさまざまなプロジェクトで同じパイプラインを作成する必要がなくなります。また、共有パイプラインを更新すると、同じ更新がすべてのパイプライン ユーザーに対して反映されます。
共有パイプラインは、Automation Service Broker でも使用できます。Automation Service Broker 管理者は、共有パイプラインをカタログ アイテムとして追加できます。ユーザーは、それを申請して複数のプロジェクトで実行することができます。
Automation Pipelines 管理者のみが、パイプラインの共有または共有の停止を実行できます。
パイプラインを共有する方法
パイプラインを共有するには、[パイプライン] をクリックし、共有するパイプラインを選択します。
- の順にクリックします
- パイプラインが無効になっている場合は、 の順にクリックします。
- (オプション) 共有パイプラインを Automation Service Broker で使用できるようにするには、 の順にクリックします。
パイプラインをリリースすると、Automation Service Broker 管理者はそのパイプラインを Automation Service Broker に追加できます。Automation Service Broker カタログへのパイプラインの追加を参照してください。
共有パイプラインの実行方法
共有パイプラインを実行するには、パイプラインを選択してプロジェクトを選択します。
パイプラインは選択したプロジェクトのコンテキストで実行され、パイプライン モデルのみが共有されます。エンドポイントや変数など、パイプラインで使用されているインフラストラクチャは共有されません。エンドポイントや変数を使用する共有パイプラインを別のプロジェクトで実行するときは、それらのエンドポイントと変数がそのプロジェクトで使用可能である必要があります。
たとえば、jenkinsPipeline
が projectA
を使用しており、jenkinsEndpoint
という名前のエンドポイントを持つタスクを含んでいる場合です。
jenkinsPipeline
を共有して projectB
のコンテキストで実行する場合は、projectB
に jenkinsEndpoint
が必要です。jenkinsEndpoint
がない場合は、共有パイプラインを実行する前に、projectB
にエンドポイントを作成します。
次の手順では、別のプロジェクトにエンドポイントを複製する方法を示します。変数に対しても同様の手順を実行します。
- [エンドポイント] をクリックします。複製するエンドポイント(ここでは
jenkinsEndpoint
)で、 の順にクリックします。 - [インポート] ボタンをクリックし、
jenkinsEndpoint
の YAML ファイルを選択します。 - ファイルを編集して、プロジェクト(ここでは次のサンプル YAML コードの
projectB
)を変更します。--- project: projectB kind: ENDPOINT name: jenkinsEndpoint ...
- [インポート] をクリックします。
projectB
で jenkinsPipeline
を実行するには、パイプライン カードで [実行] をクリックし、プロジェクトとして projectB
を選択します。
projectB
で共有パイプラインを実行するには、
Automation Pipelines の管理者、開発者、または実行者ロールが必要です。
Automation Pipelines の閲覧者またはユーザーは、
Automation Pipelines 管理者によって
projectB
のプロジェクト管理者またはプロジェクト メンバーにされない限り、パイプラインを実行できません。
Automation Pipelines でのロールの詳細については、
Automation Pipelines でユーザー アクセスと承認を管理する方法を参照してください。
共有パイプラインを別のパイプラインに追加する方法
別のパイプライン内のネストされたタスクとして共有パイプラインを使用すると、1 つのプロジェクトに含まれたパイプラインを超えてパイプラインの機能を拡張できます。共有パイプラインは、互いに異なるプロジェクトに配置することも、ネストされたタスクとして含まれているパイプラインとは異なるプロジェクトに配置することもできます。
次の例は、2 つのネストされたパイプライン タスクを含む master-shared-pipeline-demo
という名前のパイプラインを示しています。
Task0
のパイプラインを指定するには、共有パイプラインのリストから選択します。すべてのパイプライン名にプロジェクト名が含まれます。複数の共有パイプラインの名前が同じである場合は、プロジェクト名を使用して目的のパイプラインを選択できます。
ロールバックに共有パイプラインを使用する方法
ロールバックに共有パイプラインを使用するには、タスクのロールバックを構成するときにパイプラインのリストで共有パイプラインを選択します。Automation Pipelines によってリストがフィルタされ、同じプロジェクトのパイプラインのみが表示されるか、複数のプロジェクトにある共有パイプラインが表示されます。
パイプラインで共有テンプレートを使用する方法
Automation Assembler で共有されているテンプレートは、パイプライン内のタスクのテンプレート ソースとして使用できます。共有テンプレートを使用すると、1 つのプロジェクトに含まれているテンプレートよりも多くのテンプレートにアクセスできます。
Automation Pipelines でタスクを定義する前に、テンプレートが Automation Assembler で共有されていることと、その名前およびバージョンを把握していることを確認します。テンプレートが共有されている場合は、プロジェクト名の横にあるアイコンがクラウド テンプレートのリストに表示されます。
- [タスク タイプ] で [自動化テンプレート] を選択します。
- [アクション] で [展開の作成] または [展開の更新] を選択します。
- 展開を更新する場合は、展開名を選択します。
- [クラウド テンプレート ソース] で、[自動化テンプレート] を選択します。
- [クラウド テンプレート名] で、テンプレートのリストから選択するか、名前を入力します。テンプレートがリストに表示されない場合は、テンプレートがパイプラインとは異なるプロジェクト内にあり、Automation Pipelines には同じプロジェクト内にあるテンプレートのみが表示されています。
- [クラウド テンプレートのバージョン] に、テンプレートのバージョンを入力します。
次の例で、shared-bp
は Automation Assembler で確認した共有テンプレートであり、これを使用しますが、選択項目としてリストされていないため、名前を入力します。
パイプラインを削除または共有を停止する方法
共有パイプラインをネストされたタスクとして追加する場合、またはタスクをロールバックする場合、このパイプラインは使用されているパイプラインによって参照されます。パイプラインを削除または共有を停止するには、参照しているすべてのパイプラインから参照を削除する必要があります。
たとえば、master-shared-pipeline-demo
に、ネストされたタスクとして Shared-Pipeline
が含まれている場合、Shared-Pipeline
は参照されています。Shared-Pipeline
は、master-shared-pipeline-demo
から解除するまで削除したり、共有を停止したりすることはできません。
TestRollback
が Shared-Pipeline
を使用してタスクをロールバックする場合は、Shared-Pipeline
が参照されます。Shared-Pipeline
は、TestRollback
でタスクに関するロールバックから解除するまで、削除したり、共有を停止したりすることはできません。
次の手順では、パイプラインを削除または共有を停止できるように、パイプラインの参照を確認し、参照しているパイプラインから参照を削除する方法を示します。
- 参照を確認し、見つかった場合はパイプラインの参照を更新します。
- [パイプライン] をクリックします。確認する対象の共有パイプラインで、 の順にクリックします。
- [参照されているパイプライン] の名前を書き留めます。
- 共有パイプラインを参照するパイプラインを開きます。ネストされたタスクとして使用されている共有パイプライン、またはタスクのロールバックに使用されている共有パイプラインを削除し、パイプラインを保存します。
- パイプラインを削除または共有を停止します。
- 削除するパイプラインで、 の順にクリックします。
- 共有を停止するパイプラインで、 の順にクリックします。