Automation Pipelines 管理者は、パイプラインを共有することができます。これによって組織内のユーザーは、そのパイプラインを他のプロジェクトで実行したり、別のプロジェクトのパイプライン内にネストされたタスクとして追加したりできます。

共有パイプラインが役に立つ理由

パイプラインを共有すると、組織内のさまざまなプロジェクトで同じパイプラインを作成する必要がなくなります。また、共有パイプラインを更新すると、同じ更新がすべてのパイプライン ユーザーに対して反映されます。

共有パイプラインは、Automation Service Broker でも使用できます。Automation Service Broker 管理者は、共有パイプラインをカタログ アイテムとして追加できます。ユーザーは、それを申請して複数のプロジェクトで実行することができます。

Automation Pipelines 管理者のみが、パイプラインの共有または共有の停止を実行できます。

パイプラインを共有する方法

パイプラインを共有するには、[パイプライン] をクリックし、共有するパイプラインを選択します。

  1. [アクション] > [プロジェクト間で共有] の順にクリックします
  2. パイプラインが無効になっている場合は、[アクション] > [有効化] の順にクリックします。
  3. (オプション) 共有パイプラインを Automation Service Broker で使用できるようにするには、[アクション] > [リリース] の順にクリックします。

    パイプラインをリリースすると、Automation Service Broker 管理者はそのパイプラインを Automation Service Broker に追加できます。Automation Service Broker カタログへのパイプラインの追加を参照してください。

共有パイプラインの実行方法

共有パイプラインを実行するには、パイプラインを選択してプロジェクトを選択します。

パイプラインは選択したプロジェクトのコンテキストで実行され、パイプライン モデルのみが共有されます。エンドポイントや変数など、パイプラインで使用されているインフラストラクチャは共有されません。エンドポイントや変数を使用する共有パイプラインを別のプロジェクトで実行するときは、それらのエンドポイントと変数がそのプロジェクトで使用可能である必要があります。

たとえば、jenkinsPipelineprojectA を使用しており、jenkinsEndpoint という名前のエンドポイントを持つタスクを含んでいる場合です。

共有パイプラインを実行する前に、別のプロジェクトでパイプラインを実行するために必要なコンテンツがパイプラインに含まれているかどうかを確認します。

jenkinsPipeline を共有して projectB のコンテキストで実行する場合は、projectBjenkinsEndpoint が必要です。jenkinsEndpoint がない場合は、共有パイプラインを実行する前に、projectB にエンドポイントを作成します。

次の手順では、別のプロジェクトにエンドポイントを複製する方法を示します。変数に対しても同様の手順を実行します。

  1. [エンドポイント] をクリックします。複製するエンドポイント(ここでは jenkinsEndpoint)で、[アクション] > [エクスポート] の順にクリックします。
  2. [インポート] ボタンをクリックし、jenkinsEndpoint の YAML ファイルを選択します。
  3. ファイルを編集して、プロジェクト(ここでは次のサンプル YAML コードの projectB)を変更します。
    ---
    project: projectB
    kind: ENDPOINT
    name: jenkinsEndpoint
    ...
  4. [インポート] をクリックします。

projectBjenkinsPipeline を実行するには、パイプライン カードで [実行] をクリックし、プロジェクトとして projectB を選択します。

注: projectB で共有パイプラインを実行するには、 Automation Pipelines の管理者、開発者、または実行者ロールが必要です。 Automation Pipelines の閲覧者またはユーザーは、 Automation Pipelines 管理者によって projectB のプロジェクト管理者またはプロジェクト メンバーにされない限り、パイプラインを実行できません。 Automation Pipelines でのロールの詳細については、 Automation Pipelines でユーザー アクセスと承認を管理する方法を参照してください。

共有パイプラインを別のパイプラインに追加する方法

別のパイプライン内のネストされたタスクとして共有パイプラインを使用すると、1 つのプロジェクトに含まれたパイプラインを超えてパイプラインの機能を拡張できます。共有パイプラインは、互いに異なるプロジェクトに配置することも、ネストされたタスクとして含まれているパイプラインとは異なるプロジェクトに配置することもできます。

次の例は、2 つのネストされたパイプライン タスクを含む master-shared-pipeline-demo という名前のパイプラインを示しています。

ネストされた共有パイプラインを含むパイプラインを作成する場合は、共有パイプラインを選択します。同じ名前のパイプラインが 2 つある場合は、プロジェクト名を使用して目的のパイプラインを選択します。

Task0 のパイプラインを指定するには、共有パイプラインのリストから選択します。すべてのパイプライン名にプロジェクト名が含まれます。複数の共有パイプラインの名前が同じである場合は、プロジェクト名を使用して目的のパイプラインを選択できます。

注: ネストされたパイプラインを含むパイプラインを実行する場合、そのパイプラインは、ネストされたパイプラインで使用されているすべてのエンドポイントまたは変数にアクセスできる必要があります。アクセスできない場合は、パイプラインのプロジェクトにコンテンツを作成する必要があります。

ロールバックに共有パイプラインを使用する方法

ロールバックに共有パイプラインを使用するには、タスクのロールバックを構成するときにパイプラインのリストで共有パイプラインを選択します。Automation Pipelines によってリストがフィルタされ、同じプロジェクトのパイプラインのみが表示されるか、複数のプロジェクトにある共有パイプラインが表示されます。

ロールバック用の共有パイプラインを追加する場合は、共有パイプラインを選択します。同じ名前のパイプラインが 2 つある場合は、プロジェクト名を使用して目的のパイプラインを選択します。

パイプラインで共有テンプレートを使用する方法

Automation Assembler で共有されているテンプレートは、パイプライン内のタスクのテンプレート ソースとして使用できます。共有テンプレートを使用すると、1 つのプロジェクトに含まれているテンプレートよりも多くのテンプレートにアクセスできます。

Automation Pipelines でタスクを定義する前に、テンプレートが Automation Assembler で共有されていることと、その名前およびバージョンを把握していることを確認します。テンプレートが共有されている場合は、プロジェクト名の横にあるアイコンがクラウド テンプレートのリストに表示されます。

パイプラインのソースとして共有テンプレートを追加する前に、テンプレートが Automation Assembler で共有されていることを確認します。

共有パイプラインで Automation Assembler テンプレートを使用するには、次の手順を実行します。
  • [タスク タイプ] で [自動化テンプレート] を選択します。
  • [アクション] で [展開の作成] または [展開の更新] を選択します。
  • 展開を更新する場合は、展開名を選択します。
  • [クラウド テンプレート ソース] で、[自動化テンプレート] を選択します。
  • [クラウド テンプレート名] で、テンプレートのリストから選択するか、名前を入力します。テンプレートがリストに表示されない場合は、テンプレートがパイプラインとは異なるプロジェクト内にあり、Automation Pipelines には同じプロジェクト内にあるテンプレートのみが表示されています。
  • [クラウド テンプレートのバージョン] に、テンプレートのバージョンを入力します。

次の例で、shared-bpAutomation Assembler で確認した共有テンプレートであり、これを使用しますが、選択項目としてリストされていないため、名前を入力します。

共有テンプレートでタスクを定義する場合は、そのテンプレートが Automation Assembler で共有されていることを確認してから、Automation Pipelines に名前とバージョンを入力します。
注: 指定したテンプレートが共有されていない場合に、別のプロジェクトのパイプラインでこのテンプレートを使用すると、選択したテンプレートが共有されていないことを示すメッセージが表示され、パイプラインの実行は失敗します。

パイプラインを削除または共有を停止する方法

共有パイプラインをネストされたタスクとして追加する場合、またはタスクをロールバックする場合、このパイプラインは使用されているパイプラインによって参照されます。パイプラインを削除または共有を停止するには、参照しているすべてのパイプラインから参照を削除する必要があります。

たとえば、master-shared-pipeline-demo に、ネストされたタスクとして Shared-Pipeline が含まれている場合、Shared-Pipeline は参照されています。Shared-Pipeline は、master-shared-pipeline-demo から解除するまで削除したり、共有を停止したりすることはできません。

TestRollbackShared-Pipeline を使用してタスクをロールバックする場合は、Shared-Pipeline が参照されます。Shared-Pipeline は、TestRollback でタスクに関するロールバックから解除するまで、削除したり、共有を停止したりすることはできません。

次の手順では、パイプラインを削除または共有を停止できるように、パイプラインの参照を確認し、参照しているパイプラインから参照を削除する方法を示します。

  1. 参照を確認し、見つかった場合はパイプラインの参照を更新します。
    1. [パイプライン] をクリックします。確認する対象の共有パイプラインで、[アクション] > [リファレンスの表示] の順にクリックします。
    2. [参照されているパイプライン] の名前を書き留めます。共有パイプラインを削除する前に、共有パイプラインがネストされたパイプラインとして使用されているか、または他のパイプラインによるロールバックのために使用されているかを確認します。
    3. 共有パイプラインを参照するパイプラインを開きます。ネストされたタスクとして使用されている共有パイプライン、またはタスクのロールバックに使用されている共有パイプラインを削除し、パイプラインを保存します。
  2. パイプラインを削除または共有を停止します。
    • 削除するパイプラインで、[アクション] > [削除] の順にクリックします。
    • 共有を停止するパイプラインで、[アクション] > [共有の停止] の順にクリックします。