변수 그룹 추가 및 사용

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

변수 그룹은 YAML 파이프라인에 전달하거나 여러 파이프라인에서 사용할 수 있도록 할 수 있는 값과 비밀을 저장합니다. 동일한 프로젝트의 여러 파이프라인에서 변수 그룹을 공유하고 사용할 수 있습니다.

변수 그룹의 비밀 변수는 보호되는 리소스입니다. 승인, 검사 및 파이프라인 권한의 조합을 추가하여 변수 그룹의 비밀 변수에 대한 액세스를 제한할 수 있습니다. 비밀이 아닌 변수에 대한 액세스는 승인, 검사 및 파이프라인 권한에 의해 제한되지 않습니다.

변수 그룹 만들기

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로 이동합니다. 그룹에 비밀이 없는 경우 이 옵션을 사용하는 것이 좋습니다. 라이브러리>변수 그룹을 선택한 다음 해당 변수 그룹을 선택하고 모든 파이프라인에 대한 액세스 허용 설정을 사용하도록 설정합니다.

  • 특정 파이프라인에 대한 변수 그룹에 권한을 부여하려면 파이프라인을 열고 편집을 선택한 다음 빌드를 수동으로 큐에 대기합니다. 리소스 권한 부여 오류와 오류에 대한 "리소스 권한 부여" 작업이 표시됩니다. 변수 그룹의 권한 있는 사용자로 파이프라인을 명시적으로 추가하려면 이 작업을 선택합니다.

참고 항목

파이프라인에 변수 그룹을 추가하고 예상한 경우 빌드에서 리소스 권한 부여 오류가 표시되지 않으면 모든 파이프라인 설정에 대한 액세스 허용을 해제 합니다 .

파이프라인 자체 내에서 정의하는 변수와 동일한 방식으로 연결된 변수 그룹의 변수 값에 액세스합니다. 예를 들어 파이프라인에 연결된 변수 그룹에서 고객이라는 변수의 값에 액세스하려면 작업 매개 변수 또는 스크립트를 사용합니다$(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: 변수 그룹의 이름입니다. Wild카드는 다음과 같이 new-var*허용됩니다.
  • org: Azure DevOps 조직 URL. 를 사용하여 az devops configure -d organization=ORG_URL기본 조직을 구성합니다. 기본값으로 구성되지 않았거나 git config. 예: --org https://dev.azure.com/MyOrganizationName/
  • project: 프로젝트의 이름 또는 ID입니다. 를 사용하여 az devops configure -d project=NAME_OR_ID기본 프로젝트를 구성합니다. 기본값으로 구성되지 않았거나 git config.
  • 쿼리 순서: 결과를 오름차순 또는 내림차순(기본값) 순서로 나열합니다. 허용되는 값은 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를 찾으려면 변수 그룹 목록을 참조 하세요.
  • org: Azure DevOps 조직 URL. 를 사용하여 az devops configure -d organization=ORG_URL기본 조직을 구성합니다. 기본값으로 구성되지 않았거나 git config. 예: --org https://dev.azure.com/MyOrganizationName/
  • project: 프로젝트의 이름 또는 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를 찾으려면 변수 그룹 목록을 참조 하세요.
  • org: Azure DevOps 조직 URL. 를 사용하여 az devops configure -d organization=ORG_URL기본 조직을 구성합니다. 기본값으로 구성되지 않았거나 git config. 예: --org https://dev.azure.com/MyOrganizationName/
  • project: 프로젝트의 이름 또는 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를 찾으려면 변수 그룹 목록을 참조 하세요.
  • 이름: 필수입니다. 추가할 변수의 이름입니다.
  • org: Azure DevOps 조직 URL. 를 사용하여 az devops configure -d organization=ORG_URL기본 조직을 구성합니다. 기본값으로 구성되지 않았거나 git config. 예: --org https://dev.azure.com/MyOrganizationName/
  • project: 프로젝트의 이름 또는 ID입니다. 를 사용하여 az devops configure -d project=NAME_OR_ID기본 프로젝트를 구성합니다. 기본값으로 구성되지 않았거나 git config.
  • 비밀: 선택 사항입니다. 변수의 값이 비밀인지 여부를 나타냅니다. 허용되는 값은 false이고 true입니다.
  • 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를 찾으려면 변수 그룹 목록을 참조 하세요.
  • org: Azure DevOps 조직 URL. 를 사용하여 az devops configure -d organization=ORG_URL기본 조직을 구성합니다. 기본값으로 구성되지 않았거나 git config. 예: --org https://dev.azure.com/MyOrganizationName/
  • project: 프로젝트의 이름 또는 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를 찾으려면 변수 그룹 목록을 참조 하세요.
  • 이름: 필수입니다. 추가할 변수의 이름입니다.
  • new-name: 선택 사항입니다. 변수의 이름을 변경하도록 지정합니다.
  • org: Azure DevOps 조직 URL. 를 사용하여 az devops configure -d organization=ORG_URL기본 조직을 구성합니다. 기본값으로 구성되지 않았거나 git config. 예: --org https://dev.azure.com/MyOrganizationName/
  • project: 프로젝트의 이름 또는 ID입니다. 를 사용하여 az devops configure -d project=NAME_OR_ID기본 프로젝트를 구성합니다. 기본값으로 구성되지 않았거나 git config.
  • prompt-value: 환경 변수를 사용하거나 표준 입력을 통해 프롬프트를 사용하여 비밀 변수의 값을 업데이트하려면 true로 설정합니다. 허용되는 값은 false이고 true입니다.
  • 비밀: 선택 사항입니다. 변수의 값이 비밀로 유지되는지 여부를 나타냅니다. 허용되는 값은 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를 찾으려면 변수 그룹 목록을 참조 하세요.
  • 이름: 필수입니다. 삭제할 변수의 이름입니다.
  • org: Azure DevOps 조직 URL. 를 사용하여 az devops configure -d organization=ORG_URL기본 조직을 구성합니다. 기본값으로 구성되지 않았거나 git config. 예: --org https://dev.azure.com/MyOrganizationName/
  • project: 프로젝트의 이름 또는 ID입니다. 를 사용하여 az devops configure -d project=NAME_OR_ID기본 프로젝트를 구성합니다. 기본값으로 구성되지 않았거나 git config.
  • : 선택 사항입니다. 확인을 묻는 메시지를 표시하지 않습니다.

예시

다음 명령은 ID4인 변수 그룹에서 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 RBAC(Azure 역할 기반 액세스 제어)를 사용하는 Key Vault는 지원되지 않습니다.

기존 Azure Key Vault를 변수 그룹에 연결하고 선택적 자격 증명 모음 비밀을 변수 그룹에 매핑합니다.

  1. 변수 그룹 페이지에서 Azure Key Vault의 비밀을 변수로 연결하도록 설정합니다. 비밀을 포함하는 기존 키 자격 증명 모음이 필요합니다. Azure Portal을 사용하여 키 자격 증명 모음을 만듭니다.

    Azure Key Vault 통합을 사용한 변수 그룹의 스크린샷.

  2. Azure 구독 엔드포인트와 비밀을 포함하는 자격 증명 모음의 이름을 지정합니다.

    Azure 서비스 연결에 비밀에 대한 자격 증명 모음에 대한 관리 권한 가져오기나열 이상이 있는지 확인합니다. 자격 증명 모음 이름 옆에 있는 권한을 선택하여 Azure Pipelines에서 이러한 권한을 설정할 수 있도록 설정합니다. 또는 Azure Portal에서 수동으로 권한을 설정합니다.

    1. 자격 증명 모음에 대한 설정 연 다음 Access 정책>새로 추가를 선택합니다.
    2. 보안 주체 선택을 선택한 다음 클라이언트 계정의 서비스 주체를 선택합니다.
    3. 비밀 권한을 선택하고 가져오기 및 목록에 검사 표시가 있는지 확인합니다.
    4. 확인을 선택하여 변경 내용을 저장합니다.
  3. 변수 그룹 페이지에서 + 추가를 선택하여 이 변수 그룹에 매핑하기 위해 자격 증명 모음에서 특정 비밀을 선택합니다.

키 자격 증명 모음 비밀 관리

비밀을 관리하기 위한 유용한 팁의 다음 목록을 참조하세요.

  • 비밀 이름만 비밀 값이 아니라 변수 그룹에 매핑됩니다. 자격 증명 모음에서 가져온 최신 비밀 값은 변수 그룹에 연결된 파이프라인 실행에 사용됩니다.

  • 키 자격 증명 모음의 기존 비밀에 대한 변경 내용은 변수 그룹이 사용하는 모든 파이프라인에서 자동으로 사용할 수 있습니다.

  • 자격 증명 모음에 새 비밀이 추가되거나 삭제되면 연결된 변수 그룹이 자동으로 업데이트되지 않습니다. 변수 그룹에 포함된 비밀은 변수 그룹을 사용하는 파이프라인이 올바르게 실행되도록 명시적으로 업데이트해야 합니다.

  • Azure Key Vault는 Azure에서 암호화 키 및 비밀 저장 및 관리를 지원합니다. 현재 Azure Pipelines 변수 그룹 통합은 Azure Key Vault의 비밀만 매핑하는 것을 지원합니다. 암호화 키 및 인증서는 지원되지 않습니다.

그룹에서 변수 확장

그룹에서 변수를 설정하고 YAML 파일에서 사용하는 경우 YAML 파일의 다른 정의된 변수와 같습니다. 변수의 우선 순위에 대한 자세한 내용은 변수를 참조 하세요.