変数グループの使用を追加 & する

Azure DevOps Services |Azure DevOps Server 2022 - Azure DevOps Server 2019 |TFS 2018

変数グループには、 YAML パイプラインに渡 したり、複数のパイプラインで使用できるようにする可能性がある値とシークレットが格納されます。 同じプロジェクト内の複数のパイプラインで変数グループを共有および使用できます。

変数グループ内のシークレット変数は 、保護されたリソースです。 承認、チェック、パイプラインのアクセス許可の組み合わせを追加して、変数グループ内のシークレット変数へのアクセスを制限できます。 シークレット以外の変数へのアクセスは、承認、チェック、パイプラインのアクセス許可によって制限されません。

Note

Microsoft Team Foundation Server (TFS) 2018 以前のバージョンでは、ビルドとリリースの "パイプライン" は "定義"、"実行" は "ビルド"、"サービス接続" は "サービス エンドポイント"、"ステージ" は "環境"、"ジョブ" は "フェーズ" と呼ばれます。

変数グループを作成する

YAML で変数グループを作成することはできませんが、「変数グループの使用」の説明に従って 使用できます。

変数グループを使用する

変数グループの変数を使用するには、YAML ファイル内のグループへの参照を追加します。

variables:
- group: my-variable-group

その後、変数グループの変数を YAML ファイルで使用できます。

変数と変数グループの両方を使用する場合は、グループ化されていない個々の変数の構文を使用 name/value します。

variables:
- group: my-variable-group
- name: my-bare-variable
  value: 'value of my-bare-variable'

変数グループを参照するには、マクロ構文またはランタイム式を使用します。 次の例では、グループ my-variable-group に という名前 myhelloの変数があります。

variables:
- group: my-variable-group
- name: my-passed-variable
  value: $[variables.myhello] # uses runtime expression

steps:
- script: echo $(myhello) # uses macro syntax
- script: echo $(my-passed-variable) 

同じパイプライン内の複数の変数グループを参照できます。 複数の変数グループに同じ変数が含まれている場合、YAML ファイルの最後に含まれる変数グループによって変数の値が設定されます。

variables:
- group: my-first-variable-group
- group: my-second-variable-group

テンプレート内の変数グループを参照することもできます。 テンプレート variables.ymlでは、グループ my-variable-group が参照されます。 変数グループには、という名前 myhelloの変数が含まれています。

# variables.yml
variables:
- group: my-variable-group

このパイプラインでは、変数グループmy-variable-groupの変数$(myhello)が含まれており、variables.yml参照されます。

# azure-pipeline.yml
stages:
- stage: MyStage
  variables:
  - template: variables.yml
  jobs:
  - job: Test
    steps:
    - script: echo $(myhello)

変数グループを承認する

変数グループを操作するには、グループを承認する必要があります。 変数グループに YAML の名前のみを付ける場合は、リポジトリにコードをプッシュできるすべてのユーザーが、変数グループ内のシークレットの内容を抽出できます。 グループを承認するには、次のいずれかの手法を使用します。

  • 変数グループを使用するパイプラインを承認するには、Azure Pipelines に移動します。 グループにシークレットがない場合は、このオプションが適している可能性があります。 [ ライブラリ>変数グループ] を選択し、該当する変数グループを選択し、[ すべてのパイプラインへのアクセスを許可する] 設定を有効にします。

  • 特定のパイプラインの変数グループを承認するには、パイプラインを開き、[ 編集] を選択し、ビルドを手動でキューに登録します。 リソース承認エラーと、エラーに対する "リソースの承認" アクションが表示されます。 パイプラインを変数グループの承認されたユーザーとして明示的に追加するには、このアクションを選択します。

Note

変数グループをパイプラインに追加しても、必要なときにビルドでリソース承認エラーが発生しない場合は、[ すべてのパイプラインへのアクセスを許可する] 設定を オフにします。

YAML ビルドは TFS では使用できません。

リンクされた変数グループ内の変数値には、 パイプライン自体で定義した変数と同じ方法でアクセスします。 たとえば、パイプラインにリンクされている変数グループ内の customer という名前の変数の値にアクセスするには、タスク パラメーターまたはスクリプトで使用 $(customer) します。 ただし、シークレット変数 (暗号化された変数とキー コンテナー変数) にスクリプトで直接アクセスすることはできません。代わりに、タスクに引数として渡す必要があります。 詳細については、シークレットを参照してください

変数グループに対して行った変更は、変数グループがリンクされるすべての定義またはステージで自動的に使用できます。

変数グループを一覧表示する

CLI を使用して、 az pipelines variable-group list コマンドを使用してパイプライン実行の変数グループを一覧表示 します。 CLI 用 Azure DevOps 拡張機能を初めて使用する場合は、「 Azure DevOps CLI の概要」を参照してください。

az pipelines variable-group list [--action {manage, none, use}]
                                 [--continuation-token]
                                 [--group-name]
                                 [--org]
                                 [--project]
                                 [--query-order {Asc, Desc}]
                                 [--top]

省略可能なパラメーター

  • action: 変数グループに対して実行できるアクションを指定します。 受け入れられる値は 、管理なし、および 使用されます。
  • continuation-token: 継続トークンが提供された後の変数グループを一覧表示します。
  • group-name: 変数グループの名前。 ワイルドカードは、次のように new-var*受け入れられます。
  • 組織: Azure DevOps 組織の URL。 を使用して既定の組織を az devops configure -d organization=ORG_URL構成します。 既定値として構成されていない場合、または使用して git config取得された場合は必須です。 例: --org https://dev.azure.com/MyOrganizationName/.
  • プロジェクト: プロジェクトの名前または ID。 を使用して既定のプロジェクトを az devops configure -d project=NAME_OR_ID構成します。 既定値として構成されていない場合、または使用して git config取得された場合は必須です。
  • query-order: 結果を昇順または降順 (既定) で一覧表示します。 指定できる値は AscDesc です
  • top: 一覧表示する変数グループの数。

次のコマンドは、上位 3 つの変数グループを昇順で一覧表示し、結果をテーブル形式で返します。

az pipelines variable-group list --top 3 --query-order Asc --output table

ID    Name               Type    Number of Variables
----  -----------------  ------  ---------------------
1     myvariables        Vsts    2
2     newvariables       Vsts    4
3     new-app-variables  Vsts    3

変数グループの詳細を表示する

az pipelines variable-group show コマンドを使用して、プロジェクト内の変数グループの詳細を表示します。 CLI 用 Azure DevOps 拡張機能を初めて使用する場合は、「 Azure DevOps CLI の概要」を参照してください。

az pipelines variable-group show --group-id
                                 [--org]
                                 [--project]

パラメーター

  • group-id: 必須。 変数グループの ID。 変数グループ ID を見つけるには、「 変数グループの一覧表示」を参照してください。
  • 組織: Azure DevOps 組織の URL。 を使用して既定の組織を az devops configure -d organization=ORG_URL構成します。 既定値として構成されていない場合、または使用して git config取得された場合は必須です。 例: --org https://dev.azure.com/MyOrganizationName/.
  • プロジェクト: プロジェクトの名前または ID。 を使用して既定のプロジェクトを az devops configure -d project=NAME_OR_ID構成します。 既定値として構成されていない場合、または使用して git config取得された場合は必須です。

次のコマンドは、ID 4 の変数グループの詳細を示し、結果を YAML 形式で返します。

az pipelines variable-group show --group-id 4 --output yaml

authorized: false
description: Variables for my new app
id: 4
name: MyNewAppVariables
providerData: null
type: Vsts
variables:
  app-location:
    isSecret: null
    value: Head_Office
  app-name:
    isSecret: null
    value: Fabrikam

変数グループを削除する

az pipelines variable-group delete コマンドを使用して、プロジェクト内の変数グループを削除します。 CLI 用 Azure DevOps 拡張機能を初めて使用する場合は、「 Azure DevOps CLI の概要」を参照してください。

az pipelines variable-group delete --group-id
                                   [--org]
                                   [--project]
                                   [--yes]

パラメーター

  • group-id: 必須。 変数グループの ID。 変数グループ ID を見つけるには、「 変数グループの一覧表示」を参照してください。
  • 組織: Azure DevOps 組織の URL。 を使用して既定の組織を az devops configure -d organization=ORG_URL構成します。 既定値として構成されていない場合、または使用して git config取得された場合は必須です。 例: --org https://dev.azure.com/MyOrganizationName/.
  • プロジェクト: プロジェクトの名前または ID。 を使用して既定のプロジェクトを az devops configure -d project=NAME_OR_ID構成します。 既定値として構成されていない場合、または使用して git config取得された場合は必須です。
  • はい: 省略可能。 確認のプロンプトは表示されません。

次のコマンドは、ID 1 の変数グループを削除し、確認を求めるメッセージを表示しません。

az pipelines variable-group delete --group-id 1 --yes

Deleted variable group successfully.

変数グループに変数を追加する

Azure DevOps CLI では、 az pipelines variable-group variable create コマンドを使用して、パイプライン内の変数グループに変数を追加できます。 CLI 用 Azure DevOps 拡張機能を初めて使用する場合は、「 Azure DevOps CLI の概要」を参照してください。

az pipelines variable-group variable create --group-id
                                            --name
                                            [--org]
                                            [--project]
                                            [--secret {false, true}]
                                            [--value]

パラメーター

  • group-id: 必須。 変数グループの ID。 変数グループ ID を見つけるには、「 変数グループの一覧表示」を参照してください。
  • name:必須。 追加する変数の名前。
  • 組織: Azure DevOps 組織の URL。 を使用して既定の組織を az devops configure -d organization=ORG_URL構成します。 既定値として構成されていない場合、または使用して git config取得された場合は必須です。 例: --org https://dev.azure.com/MyOrganizationName/.
  • プロジェクト: プロジェクトの名前または ID。 を使用して既定のプロジェクトを az devops configure -d project=NAME_OR_ID構成します。 既定値として構成されていない場合、または使用して git config取得された場合は必須です。
  • secret: 省略可能。 変数の値がシークレットかどうかを示します。 受け入れられる値は falsetrue です
  • value: シークレット以外の変数に必要です。 変数の値。 シークレット変数の場合、 value パラメーターが指定されていない場合は、プレフィックスが付いた AZURE_DEVOPS_EXT_PIPELINE_VAR_ 環境変数から選択されるか、標準入力を使用して入力するようにユーザーに求められます。 たとえば、 MySecret という名前の変数は、環境変数 AZURE_DEVOPS_EXT_PIPELINE_VAR_MySecretを使用して入力できます。

次のコマンドは、ID が 4 の変数グループに変数を作成 します。 新しい変数の名前は requires-login で、値は True で、結果はテーブル形式で表示されます。

az pipelines variable-group variable create --group-id 4 --name requires-login --value True --output table

Name            Is Secret    Value
--------------  -----------  -------
requires-login  False        True

変数グループ内の変数を一覧表示する

az pipelines variable-group variable list コマンドを使用して、変数グループ内の変数を一覧表示できます。 CLI 用 Azure DevOps 拡張機能を初めて使用する場合は、「 Azure DevOps CLI の概要」を参照してください。

az pipelines variable-group variable list --group-id
                                          [--org]
                                          [--project]

パラメーター

  • group-id: 必須。 変数グループの ID。 変数グループ ID を見つけるには、「 変数グループの一覧表示」を参照してください。
  • 組織: Azure DevOps 組織の URL。 を使用して既定の組織を az devops configure -d organization=ORG_URL構成します。 既定値として構成されていない場合、または使用して git config取得された場合は必須です。 例: --org https://dev.azure.com/MyOrganizationName/.
  • プロジェクト: プロジェクトの名前または ID。 を使用して既定のプロジェクトを az devops configure -d project=NAME_OR_ID構成します。 既定値として構成されていない場合、または使用して git config取得された場合は必須です。

次のコマンドは、ID が 4 の変数グループ内のすべての変数を一覧表示し、結果をテーブル形式で示します。

az pipelines variable-group variable list --group-id 4 --output table

Name            Is Secret    Value
--------------  -----------  -----------
app-location    False        Head_Office
app-name        False        Fabrikam
requires-login  False        True

変数グループ内の変数を更新する

az pipelines variable-group variable update コマンドを使用して、変数グループ内の変数を更新します。 CLI 用 Azure DevOps 拡張機能を初めて使用する場合は、「 Azure DevOps CLI の概要」を参照してください。

az pipelines variable-group variable update --group-id
                                            --name
                                            [--new-name]
                                            [--org]
                                            [--project]
                                            [--prompt-value {false, true}]
                                            [--secret {false, true}]
                                            [--value]

パラメーター

  • group-id: 必須。 変数グループの ID。 変数グループ ID を見つけるには、「 変数グループの一覧表示」を参照してください。
  • name:必須。 追加する変数の名前。
  • new-name: 省略可能。 変数の名前を変更するように指定します。
  • 組織: Azure DevOps 組織の URL。 を使用して既定の組織を az devops configure -d organization=ORG_URL構成します。 既定値として構成されていない場合、または使用して git config取得された場合は必須です。 例: --org https://dev.azure.com/MyOrganizationName/.
  • プロジェクト: プロジェクトの名前または ID。 を使用して既定のプロジェクトを az devops configure -d project=NAME_OR_ID構成します。 既定値として構成されていない場合、または使用して git config取得された場合は必須です。
  • prompt-value: 環境変数または標準入力によるプロンプトを使用してシークレット変数の値を更新するには 、true に 設定します。 受け入れられる値は falsetrue です
  • secret: 省略可能。 変数の値がシークレットに保持されているかどうかを示します。 受け入れられる値は falsetrue です
  • value: 変数の値を更新します。 シークレット変数の場合は、 プロンプト値 パラメーターを使用して、標準入力で入力するように求められます。 非対話型コンソールの場合は、プレフィックスが付いた AZURE_DEVOPS_EXT_PIPELINE_VAR_環境変数から選択できます。 たとえば、 MySecret という名前の変数は、環境変数 AZURE_DEVOPS_EXT_PIPELINE_VAR_MySecretを使用して入力できます。

次のコマンドは、ID が 4 の変数グループの新しい値 Falserequires-login 変数を更新します。 変数が シークレット であることを指定し、結果を YAML 形式で表示します。 シークレットの非表示値であるため、出力に False ではなく null として値が表示されていることに注意してください。

az pipelines variable-group variable update --group-id 4 --name requires-login --value False --secret true --output yaml

requires-login:
  isSecret: true
  value: null

変数グループから変数を削除する

az pipelines variable-group variable delete コマンドを使用して変数グループから変数を削除します。 CLI 用 Azure DevOps 拡張機能を初めて使用する場合は、「 Azure DevOps CLI の概要」を参照してください。

az pipelines variable-group variable delete --group-id
                                            --name
                                            [--org]
                                            [--project]
                                            [--yes]

パラメーター

  • group-id: 必須。 変数グループの ID。 変数グループ ID を見つけるには、「 変数グループの一覧表示」を参照してください。
  • name:必須。 削除する変数の名前。
  • 組織: Azure DevOps 組織の URL。 を使用して既定の組織を az devops configure -d organization=ORG_URL構成します。 既定値として構成されていない場合、または使用して git config取得された場合は必須です。 例: --org https://dev.azure.com/MyOrganizationName/.
  • プロジェクト: プロジェクトの名前または ID。 を使用して既定のプロジェクトを az devops configure -d project=NAME_OR_ID構成します。 既定値として構成されていない場合、または使用して git config取得された場合は必須です。
  • はい: 省略可能。 確認のプロンプトは表示されません。

次のコマンドは、ID が 4 の変数グループから requires-login 変数を削除し、確認を求めます。

az pipelines variable-group variable delete --group-id 4 --name requires-login

Are you sure you want to delete this variable? (y/n): y
Deleted variable 'requires-login' successfully.

既存の Azure キー コンテナーを変数グループにリンクし、選択的コンテナー シークレットを変数グループにマップします。

  1. [ 変数グループ ] ページで、 Azure キー コンテナーのシークレットを変数としてリンクを有効にします。 シークレットを含む既存のキー コンテナーが必要です。 Azure portalを使用してキー コンテナーを作成します。

    Azure Key Vault 統合を使用した変数グループのスクリーンショット。

  2. Azure サブスクリプションのエンドポイントと、シークレットを含むコンテナーの名前を指定します。

    シークレットに対するコンテナーに対する Get および List 管理アクセス許可が Azure サービス接続に少なくとも付与されていることを確認します。 コンテナー名の横にある [承認 ] を選択して、Azure Pipelines でこれらのアクセス許可を設定できるようにします。 または、Azure portalで手動でアクセス許可を設定します。

    1. コンテナーの [設定] を開き、[ アクセス ポリシーの>追加] を選択します。
    2. [ プリンシパルの選択 ] を選択し、クライアント アカウントのサービス プリンシパルを選択します。
    3. [ シークレットのアクセス許可 ] を選択し、 GetList にチェック マークがあることを確認します。
    4. [OK] を選択して変更を保存します。
  3. [ 変数グループ ] ページで、[ + 追加] を選択して、この変数グループにマッピングするためにコンテナーから特定のシークレットを選択します。

キー コンテナーシークレットを管理する

シークレットの管理に役立つヒントの一覧を次に示します。

  • シークレット のみが変数グループにマップされ、シークレット値にはマップされません。 コンテナーからフェッチされた最新のシークレット値は、変数グループにリンクされているパイプライン実行で使用されます。

  • キー コンテナー内の 既存 のシークレットに加えられた変更は、変数グループが使用するすべてのパイプラインで自動的に使用できます。

  • コンテナーに新しいシークレットが追加されたり、コンテナーから削除されたりしても、関連付けられている変数グループは自動的には更新されません。 変数グループに含まれるシークレットは、変数グループを使用しているパイプラインが正しく実行されるように、明示的に更新する必要があります。

  • Azure Key Vaultでは、暗号化キーとシークレットの Azure への格納と管理がサポートされています。 現在、Azure Pipelines 変数グループ統合では、Azure キー コンテナーからのシークレットのみのマッピングがサポートされています。 暗号化キーと証明書はサポートされていません。

グループ内の変数を展開する

グループに変数を設定し、YAML ファイルで使用すると、YAML ファイル内の他の定義された変数と等しくなります。 変数の優先順位の詳細については、「 変数」を参照してください。

TFS では YAML はサポートされていません。