Hantera variabelgrupper

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

Den här artikeln beskriver hur du skapar och använder variabelgrupper i Azure Pipelines. Variabelgrupper lagrar värden och hemligheter som du kan skicka till en YAML-pipeline eller göra tillgängliga över flera pipelines i ett 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-säkerhetsvariabler begränsas inte av godkännanden, kontroller eller pipelinebehörigheter.

Variabelgrupper följer bibliotekssäkerhetsmodellen för roller och behörigheter.

Skapa en variabelgrupp

Du kan skapa variabelgrupper för pipelinekörningarna i projektet.

Kommentar

Om du vill skapa en hemlig variabelgrupp för att länka hemligheter från ett Azure-nyckelvalv som variabler följer du anvisningarna i Länka hemligheter från ett Azure-nyckelvalv.

Du kan skapa en variabelgrupp i användargränssnittet för Azure Pipelines.

Förutsättningar

En Azure DevOps-organisation och ett projekt där du har behörighet att skapa pipelines och variabler.

Skapa variabelgruppen

  1. I ditt Azure DevOps-projekt väljer du Pipelines-bibliotek> på den vänstra menyn.

  2. På sidan Bibliotek väljer du gruppen + Variabel.

    Skärmbild av biblioteksskärmen och knappen Lägg till variabelgrupp.

  3. På den nya variabelgruppens sida under Egenskaper anger du ett namn och en valfri beskrivning för variabelgruppen.

  4. Under Variabler väljer du + Lägg till och anger sedan ett variabelnamn och värde som ska inkluderas i gruppen. Om du vill kryptera och lagra värdet på ett säkert sätt väljer du låsikonen bredvid variabeln.

  5. Välj + Lägg till för att lägga till varje ny variabel. När du har lagt till variabler väljer du Spara.

    Skärmbild av hur du konfigurerar och sparar en variabelgrupp.

Nu kan du använda den här variabelgruppen i projektpipelines.

Du kan skapa en variabelgrupp som länkar till ett befintligt Azure-nyckelvalv och mappa valda Key Vault-hemligheter till variabelgruppen. Endast de hemliga namnen mappas till variabelgruppen, inte de hemliga värdena. Pipelinen kör den länken till variabelgruppen och hämtar de senaste hemliga värdena från valvet.

Alla ändringar som görs i befintliga hemligheter i nyckelvalvet är automatiskt tillgängliga för alla pipelines som använder variabelgruppen. Men om hemligheter läggs till eller tas bort från valvet uppdateras inte de associerade variabelgrupperna automatiskt. Du måste uttryckligen uppdatera hemligheterna så att de inkluderas i variabelgruppen.

Även om Key Vault stöder lagring och hantering av kryptografiska nycklar och certifikat i Azure, stöder Azure Pipelines-variabelgruppintegrering endast mappning av nyckelvalvshemligheter. Kryptografiska nycklar och certifikat stöds inte.

Kommentar

Nyckelvalv som använder rollbaserad åtkomstkontroll i Azure (Azure RBAC) stöds inte.

Förutsättningar

  • Ett Azure-nyckelvalv som innehåller dina hemligheter. Du kan skapa ett nyckelvalv med hjälp av Azure-portalen.
  • En Azure-tjänstanslutning för projektet.

Skapa variabelgruppen

  1. I ditt Azure DevOps-projekt väljer du Gruppen PipelinesBibliotek>>+ Variabel.
  2. På sidan Variabelgrupper anger du ett namn och en valfri beskrivning för variabelgruppen.
  3. Aktivera Länkhemligheter från ett Azure-nyckelvalv som variabler.
  4. Välj namnet på din Azure-prenumerationsslutpunkt och nyckelvalv.
  5. Aktivera Azure DevOps för att komma åt nyckelvalvet genom att välja Auktorisera bredvid valvnamnet.
  6. På skärmen Välj hemligheter väljer du specifika hemligheter från valvet för mappning till den här variabelgruppen och väljer sedan OK.
  7. Välj Spara för att spara den hemliga variabelgruppen.

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

Kommentar

Din Azure-tjänstanslutning måste ha minst Behörigheter för Hämta och Lista för nyckelvalvet, som du kan auktorisera i föregående steg. Du kan också ange dessa behörigheter från Azure-portalen genom att följa dessa steg:

  1. Öppna Inställningar för nyckelvalvet och välj sedan Åtkomstkonfiguration>Gå till åtkomstprinciper.
  2. På sidan Åtkomstprinciper väljer du Skapa om ditt Azure Pipelines-projekt inte visas under Program med behörigheter som minst Hämta och Lista.
  3. Under Hemliga behörigheter väljer du Hämta och Lista och väljer sedan Nästa.
  4. Välj tjänstens huvudnamn och välj sedan Nästa.
  5. Välj Nästa igen, granska inställningarna och välj sedan Skapa.

Mer information finns i Använda Azure Key Vault-hemligheter.

Uppdatera variabelgrupper

Du kan uppdatera variabelgrupper med hjälp av användargränssnittet för Azure Pipelines.

  1. I ditt Azure DevOps-projekt väljer du Pipelines-bibliotek> på den vänstra menyn.
  2. På sidan Bibliotek väljer du den variabelgrupp som du vill uppdatera. Du kan också hovra över listan med variabelgrupper, välja ikonen Fler alternativ och välja Redigera på menyn.
  3. På sidan variabelgrupp ändrar du någon av egenskaperna och väljer sedan Spara.

Ta bort en variabelgrupp

Du kan ta bort variabelgrupper i användargränssnittet för Azure Pipelines.

  1. I ditt Azure DevOps-projekt väljer du Pipelines-bibliotek> på den vänstra menyn.
  2. Hovra över den variabelgrupp som du vill ta bort på sidan Bibliotek och välj ikonen Fler alternativ.
  3. Välj Ta bort på menyn och välj sedan Ta bort på bekräftelseskärmen.

Hantera variabler i variabelgrupper

Du kan ändra, lägga till eller ta bort variabler i variabelgrupper med hjälp av användargränssnittet för Azure Pipelines.

  1. I ditt Azure DevOps-projekt väljer du Pipelines-bibliotek> på den vänstra menyn.
  2. På sidan Bibliotek väljer du den variabelgrupp som du vill uppdatera. Du kan också hovra över listan med variabelgrupper, välja ikonen Fler alternativ och välja Redigera på menyn.
  3. På sidan variabelgrupp kan du:
    • Ändra något av variabelnamnen eller värdena.
    • Ta bort någon av variablerna genom att välja papperskorgsikonen bredvid variabelnamnet.
    • Ändra variabler till hemlighet eller icke-sekret genom att välja låsikonen bredvid variabelvärdet.
    • Lägg till nya variabler genom att välja + Lägg till.
  4. När du har gjort ändringar väljer du Spara.

Använda variabelgrupper i pipelines

Du kan använda variabelgrupper i YAML- eller klassiska pipelines. Ändringar som du gör i en variabelgrupp är automatiskt tillgängliga för alla definitioner eller faser som variabelgruppen är länkad till.

Använda variabelgrupper i YAML-pipelines

När du har auktorisera en YAML-pipeline för att använda en variabelgrupp kan du använda variabelgruppen eller variablerna i den i pipelinen.

Auktorisera YAML-pipelinen för att använda variabelgruppen

Om du bara namnger variabelgruppen i YAML-pipelines kan alla som kan skicka kod till lagringsplatsen extrahera innehållet i hemligheterna i variabelgruppen. Om du vill använda en variabelgrupp med YAML-pipelines måste du därför auktorisera pipelinen att använda gruppen. Klassiska pipelines kan använda variabelgrupper utan separat auktorisering.

Du kan auktorisera pipelines för att använda dina variabelgrupper med hjälp av användargränssnittet för Azure Pipelines.

  1. I ditt Azure DevOps-projekt väljer du Pipelines-bibliotek> på den vänstra menyn.
  2. På sidan Bibliotek väljer du den variabelgrupp som du vill auktorisera.
  3. På sidan variabelgrupp väljer du fliken Pipelinebehörigheter .
  4. På skärmen Pipelinebehörigheter väljer du + och väljer sedan en pipeline som ska auktoriseras. Eller välj ikonen Fler åtgärder , välj Öppna åtkomst och välj Öppna åtkomst igen för att bekräfta.

Om du väljer en pipeline godkänns pipelinen att använda variabelgruppen. Om du vill auktorisera en annan pipeline väljer du + ikonen igen. Om du väljer Öppna åtkomst kan alla projektpipelines använda variabelgruppen. Öppen åtkomst kan vara ett bra alternativ om du inte har några hemligheter i gruppen.

Ett annat sätt att auktorisera en variabelgrupp är att välja pipelinen, välja Redigera och sedan köa en version manuellt. Du ser ett resursauktoriseringsfel och kan sedan uttryckligen lägga till pipelinen som en behörig användare av variabelgruppen.

Använda variabelgruppen i YAML-pipelinen

Om du vill använda en variabel från en variabelgrupp lägger du till en referens till gruppnamnet i YAML-pipelinefilen. Du kan sedan använda variabler från variabelgruppen i filen.

variables:
- group: my-variable-group

Du kan referera till flera variabelgrupper i samma pipeline. Om flera variabelgrupper innehåller samma variabel anger den sista variabelgruppen som använder variabeln i filen variabelns värde. Mer information om variablers prioritet finns i Expansion av variabler.

Du kan också referera till en variabelgrupp i en mall. Följande variables.yml mallfil refererar till variabelgruppen my-variable-group. Variabelgruppen innehåller en variabel med namnet myhello.

variables:
- group: my-variable-group

YAML-pipelinen refererar till mallen variables.yml och använder variabeln $(myhello) från variabelgruppen my-variable-group.

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

Använda variabler för variabelgrupper i YAML-pipelines

Du kommer åt variabelvärdena i en länkad variabelgrupp på samma sätt som du kommer åt variabler som du definierar i pipelinen. Om du till exempel vill komma åt värdet för en variabel med namnet customer i en variabelgrupp som är länkad till pipelinen kan du använda $(customer) i en aktivitetsparameter eller ett skript.

Om du använder både fristående variabler och variabelgrupper i pipelinefilen använder du syntaxen name-value för de fristående variablerna.

variables:
- group: my-variable-group
- name: my-standalone-variable
  value: 'my-standalone-variable-value'

Om du vill referera till en variabel i en variabelgrupp kan du använda makrosyntax eller ett körningsuttryck. I följande exempel har gruppen my-variable-group en variabel med namnet myhello.

Så här använder du ett körningsuttryck:

variables:
- group: my-variable-group
- name: my-passed-variable
  value: $[variables.myhello]
- script: echo $(my-passed-variable)

Så här använder du makrosyntax:

variables:
- group: my-variable-group

steps:
- script: echo $(myhello)

Du kan inte komma åt hemliga variabler, inklusive krypterade variabler och nyckelvalvsvariabler, direkt i skript. Du måste skicka dessa variabler som argument till en uppgift. Mer information finns i Hemliga variabler.

Använda variabelgrupper i klassiska pipelines

Klassiska pipelines kan använda variabelgrupper utan separat auktorisering. Så här använder du en variabelgrupp:

  1. Öppna den klassiska pipelinen.

  2. Välj Variabler>Variabelgrupper och välj sedan Länka variabelgrupp.

  3. I en byggpipeline visas en lista över tillgängliga grupper. Länka en variabelgrupp till pipelinen. Alla variabler i gruppen är tillgängliga för användning i pipelinen.

    I en versionspipeline visas även en listruta med steg i pipelinen. Länka variabelgruppen till själva pipelinen eller till ett eller flera specifika steg i versionspipelinen. Om du länkar till en eller flera steg begränsas variablerna från variabelgruppen till dessa faser och är inte tillgängliga i de andra stegen i versionen.

    Skärmbild som visar länkning av en variabelgrupp.

När du anger en variabel med samma namn i flera omfång används följande prioritet, högst först:

  1. Variabel som anges vid kötid
  2. Variabeluppsättning i pipelinen
  3. Variabeluppsättning i variabelgruppen

Mer information om variablers prioritet finns i Expansion av variabler.

Kommentar

Variabler i olika grupper som är länkade till en pipeline i samma omfång (till exempel jobb eller fas) kolliderar och resultatet kan vara oförutsägbart. Se till att du använder olika namn för variabler i alla dina variabelgrupper.