Lägg till och använd variabelgrupper

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Variabelgrupper lagrar värden och hemligheter som du kanske vill skicka till en YAML-pipeline eller göra tillgängliga i flera pipelines. Du kan dela och använda variabelgrupper i flera pipelines i samma projekt.

Hemliga variabler i variabelgrupper är skyddade resurser. Du kan lägga till kombinationer av godkännanden, kontroller och pipelinebehörigheter för att begränsa åtkomsten till hemliga variabler i en variabelgrupp. Åtkomst till icke-hemliga variabler begränsas inte av godkännanden, kontroller och pipelinebehörigheter.

Skapa en variabelgrupp

Du kan inte skapa variabelgrupper i YAML, men de kan användas enligt beskrivningen i Använd en variabelgrupp.

Använda en variabelgrupp

Om du vill använda en variabel från en variabelgrupp lägger du till en referens till gruppen i YAML-filen:

variables:
- group: my-variable-group

Sedan kan variabler från variabelgruppen användas i YAML-filen.

Om du använder både variabler och variabelgrupper använder du syntaxen name/value för de enskilda variablerna som inte är grupperade:

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

Om du vill referera till en variabelgrupp använder du makrosyntax eller ett körningsuttryck. I följande exempel har gruppen my-variable-group en variabel med namnet 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) 

Du kan referera till flera variabelgrupper i samma pipeline. Om flera variabelgrupper innehåller samma variabel anger variabelgruppen som ingick sist i YAML-filen variabelns värde.

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

Du kan också referera till en variabelgrupp i en mall. I mallen variables.ymlrefereras gruppen my-variable-group till. Variabelgruppen innehåller en variabel med namnet myhello.

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

I den här pipelinen inkluderas variabeln $(myhello) från variabelgruppen my-variable-group och variables.yml refereras till.

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

Auktorisera en variabelgrupp

Om du vill arbeta med en variabelgrupp måste du auktorisera gruppen. Om du bara namnger variabelgruppen i YAML kan alla som kan skicka kod till lagringsplatsen extrahera innehållet i hemligheterna i variabelgruppen. Om du vill auktorisera gruppen använder du någon av följande tekniker:

  • Om du vill auktorisera en pipeline att använda variabelgruppen går du till Azure Pipelines. Det här kan vara ett bra alternativ om du inte har några hemligheter i gruppen. Välj Biblioteksvariabelgrupper> och välj sedan variabelgruppen i fråga och aktivera inställningen Tillåt åtkomst till alla pipelines.

  • Om du vill auktorisera en variabelgrupp för en specifik pipeline öppnar du pipelinen, väljer Redigera och köar sedan en version manuellt. Du ser ett resursauktoriseringsfel och en åtgärd för att auktorisera resurser på felet. Välj den här åtgärden för att uttryckligen lägga till pipelinen som behörig användare av variabelgruppen.

Kommentar

Om du lägger till en variabelgrupp i en pipeline och inte får något resursauktoriseringsfel i din version när du förväntade dig en, inaktiverar du inställningen Tillåt åtkomst till alla pipelines .

Få åtkomst till variabelvärdena i en länkad variabelgrupp på samma sätt som variabler som du definierar i själva pipelinen. Om du till exempel vill komma åt värdet för en variabel med namnet kund i en variabelgrupp som är länkad till pipelinen använder du $(customer) i en aktivitetsparameter eller ett skript. Men du kan inte komma åt hemliga variabler (krypterade variabler och nyckelvalvsvariabler) direkt i skript – i stället måste de skickas som argument till en uppgift. Mer information finns i hemligheter

Ändringar som du gör i en variabelgrupp är automatiskt tillgängliga för alla definitioner eller faser som variabelgruppen länkas till.

Lista variabelgrupper

Använd CLI för att lista variabelgrupperna för pipelinekörningar med kommandot az pipelines variable-group list . Om Azure DevOps-tillägget för CLI är nytt för dig kan du läsa Komma igång med Azure DevOps CLI.

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

Valfria parametrar

  • åtgärd: Anger den åtgärd som kan utföras på variabelgrupperna. Godkända värden hanteras, ingen och används.
  • continuation-token: Visar en lista över variabelgrupper efter att en fortsättningstoken har angetts.
  • group-name: Namnet på variabelgruppen. Jokertecken accepteras, till exempel new-var*.
  • org: Url för Azure DevOps-organisationen. Konfigurera standardorganisationen med .az devops configure -d organization=ORG_URL Krävs om det inte är konfigurerat som standard eller hämtas med hjälp av git config. Exempel: --org https://dev.azure.com/MyOrganizationName/.
  • project: Projektets namn eller ID. Konfigurera standardprojektet med .az devops configure -d project=NAME_OR_ID Krävs om det inte är konfigurerat som standard eller hämtas med hjälp av git config.
  • query-order: Visar resultatet i antingen stigande eller fallande ordning (standardordningen). Godkända värden är Asc och Desc.
  • överst: Antal variabelgrupper som ska listas.

Exempel

Följande kommando visar de tre översta variabelgrupperna i stigande ordning och returnerar resultatet i tabellformat.

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

Visa information för en variabelgrupp

Visa information om en variabelgrupp i projektet med kommandot az pipelines variable-group show . Om Azure DevOps-tillägget för CLI är nytt för dig kan du läsa Komma igång med Azure DevOps CLI.

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

Parametrar

  • grupp-ID: Krävs. ID för variabelgruppen. Information om hur du hittar variabelgruppens ID finns i Lista variabelgrupper.
  • org: Url för Azure DevOps-organisationen. Konfigurera standardorganisationen med .az devops configure -d organization=ORG_URL Krävs om det inte är konfigurerat som standard eller hämtas med hjälp av git config. Exempel: --org https://dev.azure.com/MyOrganizationName/.
  • project: Projektets namn eller ID. Konfigurera standardprojektet med .az devops configure -d project=NAME_OR_ID Krävs om det inte är konfigurerat som standard eller hämtas med hjälp av git config.

Exempel

Följande kommando visar information om variabelgruppen med ID 4 och returnerar resultatet i YAML-format.

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

Ta bort en variabelgrupp

Ta bort en variabelgrupp i projektet med kommandot az pipelines variable-group delete . Om Azure DevOps-tillägget för CLI är nytt för dig kan du läsa Komma igång med Azure DevOps CLI.

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

Parametrar

  • grupp-ID: Krävs. ID för variabelgruppen. Information om hur du hittar variabelgruppens ID finns i Lista variabelgrupper.
  • org: Url för Azure DevOps-organisationen. Konfigurera standardorganisationen med .az devops configure -d organization=ORG_URL Krävs om det inte är konfigurerat som standard eller hämtas med hjälp av git config. Exempel: --org https://dev.azure.com/MyOrganizationName/.
  • project: Projektets namn eller ID. Konfigurera standardprojektet med .az devops configure -d project=NAME_OR_ID Krävs om det inte är konfigurerat som standard eller hämtas med hjälp av git config.
  • Ja: Valfritt. Uppmanar inte till bekräftelse.

Exempel

Följande kommando tar bort variabelgruppen med ID 1 och ber inte om bekräftelse.

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

Deleted variable group successfully.

Lägga till variabler i en variabelgrupp

Med Azure DevOps CLI kan du lägga till en variabel i en variabelgrupp i en pipeline med kommandot az pipelines variable-group variable create . Om Azure DevOps-tillägget för CLI är nytt för dig kan du läsa Komma igång med Azure DevOps CLI.

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

Parametrar

  • grupp-ID: Krävs. ID för variabelgruppen. Information om hur du hittar variabelgruppens ID finns i Lista variabelgrupper.
  • name: Krävs. Namnet på variabeln som du lägger till.
  • org: Url för Azure DevOps-organisationen. Konfigurera standardorganisationen med .az devops configure -d organization=ORG_URL Krävs om det inte är konfigurerat som standard eller hämtas med hjälp av git config. Exempel: --org https://dev.azure.com/MyOrganizationName/.
  • project: Projektets namn eller ID. Konfigurera standardprojektet med .az devops configure -d project=NAME_OR_ID Krävs om det inte är konfigurerat som standard eller hämtas med hjälp av git config.
  • hemlighet: Valfritt. Anger om variabelns värde är en hemlighet. Godkända värden är falska och sanna.
  • värde: Krävs för icke-hemlig variabel. Variabelns värde. För hemliga variabler, om värdeparametern inte anges, väljs den från miljövariabelns prefix med AZURE_DEVOPS_EXT_PIPELINE_VAR_ eller användaren uppmanas att ange den via standardindata. En variabel med namnet MySecret kan till exempel matas in med hjälp av miljövariabeln AZURE_DEVOPS_EXT_PIPELINE_VAR_MySecret.

Exempel

Följande kommando skapar en variabel i variabelgruppen med ID :t 4. Den nya variabeln heter requires-login och har värdet True och resultatet visas i tabellformat.

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

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

Lista variabler i en variabelgrupp

Du kan visa variablerna i en variabelgrupp med kommandot az pipelines variable-group variable list . Om Azure DevOps-tillägget för CLI är nytt för dig kan du läsa Komma igång med Azure DevOps CLI.

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

Parametrar

  • grupp-ID: Krävs. ID för variabelgruppen. Information om hur du hittar variabelgruppens ID finns i Lista variabelgrupper.
  • org: Url för Azure DevOps-organisationen. Konfigurera standardorganisationen med .az devops configure -d organization=ORG_URL Krävs om det inte är konfigurerat som standard eller hämtas med hjälp av git config. Exempel: --org https://dev.azure.com/MyOrganizationName/.
  • project: Projektets namn eller ID. Konfigurera standardprojektet med .az devops configure -d project=NAME_OR_ID Krävs om det inte är konfigurerat som standard eller hämtas med hjälp av git config.

Exempel

Följande kommando visar alla variabler i variabelgruppen med ID :t 4 och resultatet visas i tabellformat.

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

Uppdatera variabler i en variabelgrupp

Uppdatera en variabel i en variabelgrupp med kommandot az pipelines variable-group variable update . Om Azure DevOps-tillägget för CLI är nytt för dig kan du läsa Komma igång med Azure DevOps CLI.

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

Parametrar

  • grupp-ID: Krävs. ID för variabelgruppen. Information om hur du hittar variabelgruppens ID finns i Lista variabelgrupper.
  • name: Krävs. Namnet på variabeln som du lägger till.
  • new-name: Valfritt. Ange för att ändra namnet på variabeln.
  • org: Url för Azure DevOps-organisationen. Konfigurera standardorganisationen med .az devops configure -d organization=ORG_URL Krävs om det inte är konfigurerat som standard eller hämtas med hjälp av git config. Exempel: --org https://dev.azure.com/MyOrganizationName/.
  • project: Projektets namn eller ID. Konfigurera standardprojektet med .az devops configure -d project=NAME_OR_ID Krävs om det inte är konfigurerat som standard eller hämtas med hjälp av git config.
  • prompt-value: Ställ in på true för att uppdatera värdet för en hemlig variabel med hjälp av miljövariabeln eller fråga via standardindata. Godkända värden är falska och sanna.
  • hemlighet: Valfritt. Anger om variabelns värde hålls hemligt. Godkända värden är falska och sanna.
  • värde: Uppdateringar variabelns värde. För hemliga variabler använder du parametern prompt-value för att uppmanas att ange den via standardindata. För icke-interaktiva konsoler kan den hämtas från miljövariabeln med prefixet AZURE_DEVOPS_EXT_PIPELINE_VAR_. En variabel med namnet MySecret kan till exempel matas in med hjälp av miljövariabeln AZURE_DEVOPS_EXT_PIPELINE_VAR_MySecret.

Exempel

Följande kommando uppdaterar variabeln kräver inloggning med det nya värdet False i variabelgruppen med ID 4. Den anger att variabeln är en hemlighet och visar resultatet i YAML-format. Observera att utdata visar värdet som null i stället för False eftersom det är ett hemligt dolt värde.

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

requires-login:
  isSecret: true
  value: null

Ta bort variabler från en variabelgrupp

Ta bort en variabel från en variabelgrupp med kommandot az pipelines variable-group variable delete . Om Azure DevOps-tillägget för CLI är nytt för dig kan du läsa Komma igång med Azure DevOps CLI.

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

Parametrar

  • grupp-ID: Krävs. ID för variabelgruppen. Information om hur du hittar variabelgruppens ID finns i Lista variabelgrupper.
  • name: Krävs. Namnet på variabeln som du tar bort.
  • org: Url för Azure DevOps-organisationen. Konfigurera standardorganisationen med .az devops configure -d organization=ORG_URL Krävs om det inte är konfigurerat som standard eller hämtas med hjälp av git config. Exempel: --org https://dev.azure.com/MyOrganizationName/.
  • project: Projektets namn eller ID. Konfigurera standardprojektet med .az devops configure -d project=NAME_OR_ID Krävs om det inte är konfigurerat som standard eller hämtas med hjälp av git config.
  • Ja: Valfritt. Uppmanar inte till bekräftelse.

Exempel

Följande kommando tar bort variabeln kräver inloggning från variabelgruppen med ID:t 4 och ber om bekräftelse.

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.

Kommentar

Key Vaults med rollbaserad åtkomstkontroll i Azure (Azure RBAC) stöds inte.

Länka ett befintligt Azure-nyckelvalv till en variabelgrupp och mappa selektiva valvhemligheter till variabelgruppen.

  1. På sidan Variabelgrupper aktiverar du Länkhemligheter från ett Azure-nyckelvalv som variabler. Du behöver ett befintligt nyckelvalv som innehåller dina hemligheter. Skapa ett nyckelvalv med hjälp av Azure-portalen.

    Skärmbild av variabelgrupp med Azure Key Vault-integrering.

  2. Ange slutpunkten för din Azure-prenumeration och namnet på valvet som innehåller dina hemligheter.

    Kontrollera att Azure-tjänstanslutningen har minst behörighet att hämta och lista hantering i valvet för hemligheter. Aktivera Azure Pipelines för att ange dessa behörigheter genom att välja Auktorisera bredvid valvnamnet. Eller ange behörigheterna manuellt i Azure-portalen:

    1. Öppna Inställningar för valvet och välj sedan Åtkomstprinciper>Lägg till ny.
    2. Välj Välj huvudnamn och välj sedan tjänstens huvudnamn för ditt klientkonto.
    3. Välj Hemliga behörigheter och se till att Hämta och Lista har bockmarkeringar.
    4. Spara ändringarna genom att välja OK .
  3. På sidan Variabelgrupper väljer du + Lägg till för att välja specifika hemligheter från valvet för mappning till den här variabelgruppen.

Hantera key vault-hemligheter

Se följande lista med användbara tips för att hantera hemligheter.

  • Endast de hemliga namnen mappas till variabelgruppen, inte de hemliga värdena. Det senaste hemliga värdet, som hämtats från valvet, används i pipelinekörningen som är länkad till variabelgruppen.

  • Alla ändringar som görs i befintliga hemligheter i nyckelvalvet är automatiskt tillgängliga för alla pipelines som variabelgruppen används i.

  • När nya hemligheter läggs till eller tas bort från valvet uppdateras inte de associerade variabelgrupperna automatiskt. Hemligheterna som ingår i variabelgruppen måste uppdateras explicit så att pipelines som använder variabelgruppen körs korrekt.

  • Azure Key Vault stöder lagring och hantering av kryptografiska nycklar och hemligheter i Azure. För närvarande stöder Azure Pipelines-variabelgruppintegrering endast mappning av hemligheter från Azure-nyckelvalvet. Kryptografiska nycklar och certifikat stöds inte.

Expandera variabler i en grupp

När du anger en variabel i en grupp och använder den i en YAML-fil är den lika med andra definierade variabler i YAML-filen. Mer information om variablers prioritet finns i Variabler.