変数グループの使用を追加 & する
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: 結果を昇順または降順 (既定) で一覧表示します。 指定できる値は Asc と Desc です。
- 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: 省略可能。 変数の値がシークレットかどうかを示します。 受け入れられる値は false で true です。
- 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 に 設定します。 受け入れられる値は false で true です。
- secret: 省略可能。 変数の値がシークレットに保持されているかどうかを示します。 受け入れられる値は false で true です。
- value: 変数の値を更新します。 シークレット変数の場合は、 プロンプト値 パラメーターを使用して、標準入力で入力するように求められます。 非対話型コンソールの場合は、プレフィックスが付いた
AZURE_DEVOPS_EXT_PIPELINE_VAR_
環境変数から選択できます。 たとえば、 MySecret という名前の変数は、環境変数AZURE_DEVOPS_EXT_PIPELINE_VAR_MySecret
を使用して入力できます。
例
次のコマンドは、ID が 4 の変数グループの新しい値 False で requires-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 キー コンテナーのシークレットにリンクする
既存の Azure キー コンテナーを変数グループにリンクし、選択的コンテナー シークレットを変数グループにマップします。
[ 変数グループ ] ページで、 Azure キー コンテナーのシークレットを変数としてリンクを有効にします。 シークレットを含む既存のキー コンテナーが必要です。 Azure portalを使用してキー コンテナーを作成します。
Azure サブスクリプションのエンドポイントと、シークレットを含むコンテナーの名前を指定します。
シークレットに対するコンテナーに対する Get および List 管理アクセス許可が Azure サービス接続に少なくとも付与されていることを確認します。 コンテナー名の横にある [承認 ] を選択して、Azure Pipelines でこれらのアクセス許可を設定できるようにします。 または、Azure portalで手動でアクセス許可を設定します。
- コンテナーの [設定] を開き、[ アクセス ポリシーの>追加] を選択します。
- [ プリンシパルの選択 ] を選択し、クライアント アカウントのサービス プリンシパルを選択します。
- [ シークレットのアクセス許可 ] を選択し、 Get と List にチェック マークがあることを確認します。
- [OK] を選択して変更を保存します。
[ 変数グループ ] ページで、[ + 追加] を選択して、この変数グループにマッピングするためにコンテナーから特定のシークレットを選択します。
キー コンテナーシークレットを管理する
シークレットの管理に役立つヒントの一覧を次に示します。
シークレット 名 のみが変数グループにマップされ、シークレット値にはマップされません。 コンテナーからフェッチされた最新のシークレット値は、変数グループにリンクされているパイプライン実行で使用されます。
キー コンテナー内の 既存 のシークレットに加えられた変更は、変数グループが使用するすべてのパイプラインで自動的に使用できます。
コンテナーに新しいシークレットが追加されたり、コンテナーから削除されたりしても、関連付けられている変数グループは自動的には更新されません。 変数グループに含まれるシークレットは、変数グループを使用しているパイプラインが正しく実行されるように、明示的に更新する必要があります。
Azure Key Vaultでは、暗号化キーとシークレットの Azure への格納と管理がサポートされています。 現在、Azure Pipelines 変数グループ統合では、Azure キー コンテナーからのシークレットのみのマッピングがサポートされています。 暗号化キーと証明書はサポートされていません。
グループ内の変数を展開する
グループに変数を設定し、YAML ファイルで使用すると、YAML ファイル内の他の定義された変数と等しくなります。 変数の優先順位の詳細については、「 変数」を参照してください。
TFS では YAML はサポートされていません。