Aggiungi e usa gruppi di variabili

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

I gruppi di variabili archiviano i valori e i segreti che è possibile passare a una pipeline YAML o rendere disponibili in più pipeline. È possibile condividere e usare gruppi di variabili in più pipeline nello stesso progetto.

Le variabili segrete nei gruppi di variabili sono risorse protette. È possibile aggiungere combinazioni di approvazioni, controlli e autorizzazioni della pipeline per limitare l'accesso alle variabili segrete in un gruppo di variabili. L'accesso alle variabili non segrete non è limitato dalle approvazioni, dai controlli e dalle autorizzazioni della pipeline.

Nota

Microsoft Visual Studio Team Foundation Server 2018 e versioni precedenti presentano le differenze seguenti nella denominazione:

  • Le pipeline per la compilazione e la versione sono denominate definizioni
  • Le esecuzioni vengono chiamate build
  • Le connessioni al servizio sono denominate endpoint di servizio
  • Le fasi sono denominate ambienti
  • I processi vengono chiamati fasi

Creare un gruppo di variabili

Non è possibile creare gruppi di variabili in YAML, ma possono essere usati come descritto in Usare un gruppo di variabili.

Usare un gruppo di variabili

Per usare una variabile da un gruppo di variabili, aggiungere un riferimento al gruppo nel file YAML:

variables:
- group: my-variable-group

Le variabili del gruppo di variabili possono quindi essere usate nel file YAML.

Se si usano sia variabili che gruppi di variabili, usare la name/value sintassi per le singole variabili non raggruppate:

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

Per fare riferimento a un gruppo di variabili, usare la sintassi macro o un'espressione di runtime. Nell'esempio seguente il gruppo my-variable-group ha una variabile denominata 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) 

È possibile fare riferimento a più gruppi di variabili nella stessa pipeline. Se più gruppi di variabili includono la stessa variabile, il gruppo di variabili incluso per ultimo nel file YAML imposta il valore della variabile.

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

È anche possibile fare riferimento a un gruppo di variabili in un modello. Nel modello variables.ymlviene fatto riferimento al gruppo my-variable-group . Il gruppo di variabili include una variabile denominata myhello.

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

In questa pipeline la variabile del gruppo di variabili $(myhello) è inclusa e variables.yml viene fatto my-variable-group riferimento.

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

Autorizzare un gruppo di variabili

Per usare un gruppo di variabili, è necessario autorizzare il gruppo. Se si assegna solo un nome al gruppo di variabili in YAML, chiunque possa eseguire il push del codice nel repository potrebbe estrarre il contenuto dei segreti nel gruppo di variabili. Per autorizzare il gruppo, usare una delle tecniche seguenti:

  • Per autorizzare qualsiasi pipeline a usare il gruppo di variabili, passare ad Azure Pipelines. Questa potrebbe essere un'opzione valida se non si dispone di segreti nel gruppo. Selezionare Gruppi di variabili di libreria>e quindi selezionare il gruppo di variabili in questione e abilitare l'impostazione Consenti l'accesso a tutte le pipeline.

  • Per autorizzare un gruppo di variabili per una pipeline specifica, aprire la pipeline, selezionare Modifica e quindi accodare manualmente una compilazione. Viene visualizzato un errore di autorizzazione della risorsa e un'azione "Autorizza risorse" sull'errore. Scegliere questa azione per aggiungere in modo esplicito la pipeline come utente autorizzato del gruppo di variabili.

Nota

Se si aggiunge un gruppo di variabili a una pipeline e non viene visualizzato un errore di autorizzazione della risorsa nella compilazione quando ne è previsto uno, disattivare l'impostazione Consenti l'accesso a tutte le pipeline .

Le build YAML non sono disponibili in TFS.

Accedere ai valori delle variabili in un gruppo di variabili collegate allo stesso modo delle variabili definite all'interno della pipeline stessa. Ad esempio, per accedere al valore di una variabile denominata customer in un gruppo di variabili collegato alla pipeline, usare $(customer) in un parametro di attività o in uno script. Tuttavia, non è possibile accedere alle variabili segrete (variabili crittografate e variabili dell'insieme di credenziali delle chiavi) direttamente negli script, ma devono essere passate come argomenti a un'attività. Per altre informazioni, vedere Segreti

Le modifiche apportate a un gruppo di variabili sono automaticamente disponibili per tutte le definizioni o le fasi a cui viene collegato il gruppo di variabili.

Elencare i gruppi di variabili

Usare l'interfaccia della riga di comando per elencare i gruppi di variabili per le esecuzioni della pipeline con il comando az pipelines variable-group list . Se l'estensione Azure DevOps per l'interfaccia della riga di comando non è disponibile, vedere Introduzione all'interfaccia della riga di comando di Azure DevOps.

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

Parametri facoltativi

  • action: specifica l'azione che può essere eseguita sui gruppi di variabili. I valori accettati sono gestisci, nessuno e usano.
  • continuation-token: elenca i gruppi di variabili dopo che viene fornito un token di continuazione.
  • group-name: nome del gruppo di variabili. I caratteri jolly vengono accettati, ad esempio new-var*.
  • org: URL dell'organizzazione di Azure DevOps. Configurare l'organizzazione predefinita usando az devops configure -d organization=ORG_URL. Obbligatorio se non è configurato come predefinito o prelevato tramite git config. Esempio: --org https://dev.azure.com/MyOrganizationName/.
  • project: nome o ID del progetto. Configurare il progetto predefinito usando az devops configure -d project=NAME_OR_ID. Obbligatorio se non è configurato come predefinito o prelevato tramite git config.
  • query-order: elenca i risultati in ordine crescente o decrescente (impostazione predefinita). I valori accettati sono Asc e Desc.
  • top: numero di gruppi di variabili da elencare.

Esempio

Il comando seguente elenca i primi tre gruppi di variabili in ordine crescente e restituisce i risultati in formato tabella.

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

Visualizzare i dettagli per un gruppo di variabili

Visualizzare i dettagli di un gruppo di variabili nel progetto con il comando az pipelines variable-group show . Se l'estensione Azure DevOps per l'interfaccia della riga di comando non è disponibile, vedere Introduzione all'interfaccia della riga di comando di Azure DevOps.

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

Parametri

  • group-id: obbligatorio. ID del gruppo di variabili. Per trovare l'ID gruppo di variabili, vedere Elencare i gruppi di variabili.
  • org: URL dell'organizzazione di Azure DevOps. Configurare l'organizzazione predefinita usando az devops configure -d organization=ORG_URL. Obbligatorio se non è configurato come predefinito o prelevato tramite git config. Esempio: --org https://dev.azure.com/MyOrganizationName/.
  • project: nome o ID del progetto. Configurare il progetto predefinito usando az devops configure -d project=NAME_OR_ID. Obbligatorio se non è configurato come predefinito o prelevato tramite git config.

Esempio

Il comando seguente mostra i dettagli per il gruppo di variabili con ID 4 e restituisce i risultati in formato 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

Eliminare un gruppo di variabili

Eliminare un gruppo di variabili nel progetto con il comando az pipelines variable-group delete . Se l'estensione Azure DevOps per l'interfaccia della riga di comando non è disponibile, vedere Introduzione all'interfaccia della riga di comando di Azure DevOps.

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

Parametri

  • group-id: obbligatorio. ID del gruppo di variabili. Per trovare l'ID gruppo di variabili, vedere Elencare i gruppi di variabili.
  • org: URL dell'organizzazione di Azure DevOps. Configurare l'organizzazione predefinita usando az devops configure -d organization=ORG_URL. Obbligatorio se non è configurato come predefinito o prelevato tramite git config. Esempio: --org https://dev.azure.com/MyOrganizationName/.
  • project: nome o ID del progetto. Configurare il progetto predefinito usando az devops configure -d project=NAME_OR_ID. Obbligatorio se non è configurato come predefinito o prelevato tramite git config.
  • : facoltativo. Indica che non è richiesta la conferma.

Esempio

Il comando seguente elimina il gruppo di variabili con ID 1 e non richiede la conferma.

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

Deleted variable group successfully.

Aggiungere variabili a un gruppo di variabili

Con l'interfaccia della riga di comando di Azure DevOps è possibile aggiungere una variabile a un gruppo di variabili in una pipeline con il comando az pipelines variable-group variable create . Se l'estensione Azure DevOps per l'interfaccia della riga di comando non è disponibile, vedere Introduzione all'interfaccia della riga di comando di Azure DevOps.

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

Parametri

  • group-id: obbligatorio. ID del gruppo di variabili. Per trovare l'ID gruppo di variabili, vedere Elencare i gruppi di variabili.
  • name: obbligatorio. Nome della variabile da aggiungere.
  • org: URL dell'organizzazione di Azure DevOps. Configurare l'organizzazione predefinita usando az devops configure -d organization=ORG_URL. Obbligatorio se non è configurato come predefinito o prelevato tramite git config. Esempio: --org https://dev.azure.com/MyOrganizationName/.
  • project: nome o ID del progetto. Configurare il progetto predefinito usando az devops configure -d project=NAME_OR_ID. Obbligatorio se non è configurato come predefinito o prelevato tramite git config.
  • secret: facoltativo. Indica se il valore della variabile è un segreto. I valori accettati sono false e true.
  • value: obbligatorio per la variabile non segreta. Valore della variabile. Per le variabili segrete, se il parametro value non viene specificato, viene selezionato dalla variabile di ambiente preceduta AZURE_DEVOPS_EXT_PIPELINE_VAR_ da o all'utente viene richiesto di immetterlo tramite input standard. Ad esempio, una variabile denominata MySecret può essere input usando la variabile AZURE_DEVOPS_EXT_PIPELINE_VAR_MySecretdi ambiente .

Esempio

Il comando seguente crea una variabile nel gruppo di variabili con ID 4. La nuova variabile è denominata requires-login e ha un valore True e il risultato viene visualizzato in formato tabella.

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

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

Elencare le variabili in un gruppo di variabili

È possibile elencare le variabili in un gruppo di variabili con il comando az pipelines variable-group variable list . Se l'estensione Azure DevOps per l'interfaccia della riga di comando non è disponibile, vedere Introduzione all'interfaccia della riga di comando di Azure DevOps.

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

Parametri

  • group-id: obbligatorio. ID del gruppo di variabili. Per trovare l'ID gruppo di variabili, vedere Elencare i gruppi di variabili.
  • org: URL dell'organizzazione di Azure DevOps. Configurare l'organizzazione predefinita usando az devops configure -d organization=ORG_URL. Obbligatorio se non è configurato come predefinito o prelevato tramite git config. Esempio: --org https://dev.azure.com/MyOrganizationName/.
  • project: nome o ID del progetto. Configurare il progetto predefinito usando az devops configure -d project=NAME_OR_ID. Obbligatorio se non è configurato come predefinito o prelevato tramite git config.

Esempio

Il comando seguente elenca tutte le variabili nel gruppo di variabili con ID 4 e mostra il risultato in formato tabella.

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

Aggiornare le variabili in un gruppo di variabili

Aggiornare una variabile in un gruppo di variabili con il comando az pipelines variable-group variable update . Se l'estensione Azure DevOps per l'interfaccia della riga di comando non è disponibile, vedere Introduzione all'interfaccia della riga di comando di Azure DevOps.

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

Parametri

  • group-id: obbligatorio. ID del gruppo di variabili. Per trovare l'ID gruppo di variabili, vedere Elencare i gruppi di variabili.
  • name: obbligatorio. Nome della variabile da aggiungere.
  • new-name: facoltativo. Specificare per modificare il nome della variabile.
  • org: URL dell'organizzazione di Azure DevOps. Configurare l'organizzazione predefinita usando az devops configure -d organization=ORG_URL. Obbligatorio se non è configurato come predefinito o prelevato tramite git config. Esempio: --org https://dev.azure.com/MyOrganizationName/.
  • project: nome o ID del progetto. Configurare il progetto predefinito usando az devops configure -d project=NAME_OR_ID. Obbligatorio se non è configurato come predefinito o prelevato tramite git config.
  • prompt-value: impostare su true per aggiornare il valore di una variabile privata usando la variabile di ambiente o la richiesta tramite input standard. I valori accettati sono false e true.
  • secret: facoltativo. Indica se il valore della variabile viene mantenuto segreto. I valori accettati sono false e true.
  • value: Aggiornamenti il valore della variabile. Per le variabili segrete, usare il parametro prompt-value da immettere tramite input standard. Per le console non interattive, è possibile selezionarla dalla variabile di ambiente preceduta AZURE_DEVOPS_EXT_PIPELINE_VAR_da . Ad esempio, una variabile denominata MySecret può essere input usando la variabile AZURE_DEVOPS_EXT_PIPELINE_VAR_MySecretdi ambiente .

Esempio

Il comando seguente aggiorna la variabile requires-login con il nuovo valore False nel gruppo di variabili con ID 4. Specifica che la variabile è un segreto e mostra il risultato in formato YAML. Si noti che l'output mostra il valore come Null anziché False perché si tratta di un valore nascosto segreto.

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

requires-login:
  isSecret: true
  value: null

Eliminare variabili da un gruppo di variabili

Eliminare una variabile da un gruppo di variabili con il comando az pipelines variable-group variable delete . Se l'estensione Azure DevOps per l'interfaccia della riga di comando non è disponibile, vedere Introduzione all'interfaccia della riga di comando di Azure DevOps.

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

Parametri

  • group-id: obbligatorio. ID del gruppo di variabili. Per trovare l'ID gruppo di variabili, vedere Elencare i gruppi di variabili.
  • name: obbligatorio. Nome della variabile che si sta eliminando.
  • org: URL dell'organizzazione di Azure DevOps. Configurare l'organizzazione predefinita usando az devops configure -d organization=ORG_URL. Obbligatorio se non è configurato come predefinito o prelevato tramite git config. Esempio: --org https://dev.azure.com/MyOrganizationName/.
  • project: nome o ID del progetto. Configurare il progetto predefinito usando az devops configure -d project=NAME_OR_ID. Obbligatorio se non è configurato come predefinito o prelevato tramite git config.
  • : facoltativo. Indica che non è richiesta la conferma.

Esempio

Il comando seguente elimina la variabile requires-login dal gruppo di variabili con ID 4 e richiede la conferma.

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.

Nota

Gli insiemi di credenziali delle chiavi che usano il controllo degli accessi in base al ruolo di Azure non sono supportati.

Collegare un insieme di credenziali delle chiavi di Azure esistente a un gruppo di variabili ed eseguire il mapping dei segreti dell'insieme di credenziali selettivi al gruppo di variabili.

  1. Nella pagina Gruppi di variabili abilitare Collega segreti da un insieme di credenziali delle chiavi di Azure come variabili. Sarà necessario un insieme di credenziali delle chiavi esistente contenente i segreti. Creare un insieme di credenziali delle chiavi usando il portale di Azure.

    Screenshot of variable group with Azure key vault integration.

  2. Specificare l'endpoint della sottoscrizione di Azure e il nome dell'insieme di credenziali contenente i segreti.

    Verificare che la connessione al servizio di Azure disponga almeno delle autorizzazioni di gestione Get e List nell'insieme di credenziali per i segreti. Abilitare Azure Pipelines per impostare queste autorizzazioni scegliendo Autorizza accanto al nome dell'insieme di credenziali. In alternativa, impostare manualmente le autorizzazioni nel portale di Azure:

    1. Aprire Impostazioni per l'insieme di credenziali e quindi scegliere Criteri di accesso>Aggiungi nuovo.
    2. Selezionare Seleziona entità e quindi scegliere l'entità servizio per l'account client.
    3. Selezionare Autorizzazioni segrete e assicurarsi che Get e List dispongano di segni di spunta.
    4. Selezionare OK per salvare le modifiche.
  3. Nella pagina Gruppi di variabili selezionare + Aggiungi per selezionare segreti specifici dall'insieme di credenziali per il mapping a questo gruppo di variabili.

Gestire i segreti dell'insieme di credenziali delle chiavi

Vedere l'elenco seguente di suggerimenti utili per la gestione dei segreti.

  • Solo i nomi dei segreti vengono mappati al gruppo di variabili, non ai valori dei segreti. Il valore del segreto più recente, recuperato dall'insieme di credenziali, viene usato nell'esecuzione della pipeline collegata al gruppo di variabili.

  • Tutte le modifiche apportate ai segreti esistenti nell'insieme di credenziali delle chiavi sono automaticamente disponibili per tutte le pipeline in cui viene usato il gruppo di variabili.

  • Quando i nuovi segreti vengono aggiunti o eliminati dall'insieme di credenziali, i gruppi di variabili associati non vengono aggiornati automaticamente. I segreti inclusi nel gruppo di variabili devono essere aggiornati in modo esplicito in modo che le pipeline che usano il gruppo di variabili vengano eseguite correttamente.

  • Azure Key Vault supporta l'archiviazione e la gestione di chiavi crittografiche e segreti in Azure. Attualmente, l'integrazione dei gruppi di variabili di Azure Pipelines supporta il mapping solo dei segreti dell'insieme di credenziali delle chiavi di Azure. Le chiavi crittografiche e i certificati non sono supportati.

Espandere le variabili in un gruppo

Quando si imposta una variabile in un gruppo e la si usa in un file YAML, è uguale ad altre variabili definite nel file YAML. Per altre informazioni sulla precedenza delle variabili, vedere Variabili.

YAML non è supportato in TFS.