Gerenciar grupos de variáveis

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

Este artigo explica como criar e usar grupos de variáveis no Azure Pipelines. Os grupos de variáveis armazenam valores e segredos que você pode passar para um pipeline YAML ou disponibilizar em vários pipelines em um projeto.

As variáveis secretas em grupos de variáveis são recursos protegidos. Você pode adicionar combinações de aprovações, verificações e permissões de pipeline para limitar o acesso a variáveis secretas em um grupo de variáveis. O acesso a variáveis não secretas não é limitado por aprovações, verificações ou permissões de pipeline.

Os grupos de variáveis seguem o modelo de segurança da biblioteca para funções e permissões.

Criar um grupo de variáveis

Você pode criar grupos de variáveis para as execuções de pipeline em seu projeto.

Observação

Para criar um grupo de variáveis secretas para vincular segredos de um Azure Key Vault como variáveis, siga as instruções em Vincular segredos de um Azure Key Vault.

Você pode criar um grupo de variáveis na interface do usuário do Azure Pipelines.

Pré-requisitos

Uma organização e um projeto do Azure DevOps em que você tem permissões para criar pipelines e variáveis.

Criar o grupo de variáveis

  1. No projeto do Azure DevOps, selecione Pipelines>Biblioteca no menu à esquerda.

  2. Na página Biblioteca, selecione + Grupo de variáveis.

    Captura de tela da tela Biblioteca e do botão Adicionar grupo de variáveis.

  3. Na página do novo grupo de variáveis, em Propriedades, insira um nome e uma descrição opcional para o grupo de variáveis.

  4. Em Variáveis, selecione + Adicionar e insira um nome de variável e um valor para incluir no grupo. Se você quiser criptografar e armazenar o valor com segurança, selecione o ícone de cadeado ao lado da variável.

  5. Selecione + Adicionar para adicionar cada nova variável. Quando terminar de adicionar variáveis, selecione Salvar.

    Captura de tela da configuração e do salvamento de um grupo de variáveis.

Agora você pode usar esse grupo de variáveis em pipelines de projeto.

Você pode criar um grupo de variáveis que seja vinculado a um Azure Key Vault e mapeie os segredos do Key Vault selecionado para o grupo de variáveis. Somente os nomes de segredo são mapeados para o grupo de variáveis, não os valores de segredo. As execuções de pipeline vinculadas ao grupo de variáveis buscam os valores secretos mais recentes do cofre.

Todas as alterações feitas em segredos existentes no cofre de chaves ficam automaticamente disponíveis para todos os pipelines que usam o grupo de variáveis. No entanto, se os segredos forem adicionados ou excluídos do cofre, os grupos de variáveis associados não são atualizados automaticamente. Você deve atualizar explicitamente os segredos a serem incluídos no grupo de variáveis.

Embora o Key Vault dê suporte ao armazenamento e ao gerenciamento de chaves criptográficas e de certificados no Azure, a integração de grupo de variáveis do Azure Pipelines só dá suporte ao mapeamento de segredos de cofre de chaves. Não há suporte para chaves criptográficas e certificados.

Observação

Os cofres de chaves que usam o RBAC do Azure (controle de acesso baseado em função) não têm suporte.

Pré-requisitos

Criar o grupo de variáveis

  1. No projeto do Azure DevOps, selecione Pipelines>Biblioteca>+ Grupo de variáveis.
  2. Na página Grupos de variáveis, insira um nome e uma descrição opcional para o grupo de variáveis.
  3. Habilite a alternância Vincular segredos de um Azure Key Vault como variáveis.
  4. Selecione o ponto de extremidade da assinatura do Azure e o nome do cofre de chaves.
  5. Habilite o Azure DevOps para acessar o cofre de chaves selecionando Autorizar ao lado do nome do cofre.
  6. Na tela Escolher segredos, selecione segredos específicos do cofre para mapeamento para esse grupo de variáveis e selecione OK.
  7. Selecione Salvar para salvar o grupo de variáveis secretas.

Captura de tela do grupo de variáveis com a integração do Azure Key Vault.

Observação

Sua conexão de serviço do Azure deve ter pelo menos as permissões Obter e Listar no cofre de chaves, que você pode autorizar nas etapas anteriores. Você também pode fornecer essas permissões do portal do Azure seguindo estas etapas:

  1. Abra as Configurações do cofre de chaves e escolha Configuração de acesso>Ir para políticas de acesso.
  2. Na página Políticas de acesso, se o seu projeto do Azure Pipelines não estiver listado em Aplicativos com pelo menos as permissões Obter e Listar, selecione Criar.
  3. Em Permissões secretas, selecione Obter e Listar e, em seguida, selecione Avançar.
  4. Selecione sua entidade de serviço e, em seguida, selecione Avançar.
  5. Selecione Avançar novamente, revise as configurações e, em seguida, selecione Criar.

Para obter mais informações, confira Usar segredos do Azure Key Vault.

Atualizar os grupos de variáveis

Você pode atualizar grupos de variáveis usando a interface do usuário do Azure Pipelines.

  1. No projeto do Azure DevOps, selecione Pipelines>Biblioteca no menu à esquerda.
  2. Na página Biblioteca, selecione o grupo de variáveis que deseja atualizar. Você também pode passar o mouse sobre a lista do grupo de variáveis, selecionar o ícone Mais opções e selecionar Editar no menu.
  3. Na página do grupo de variáveis, altere qualquer uma das propriedades e selecione Salvar.

Excluir um grupo de variáveis

Você pode excluir grupos de variáveis na interface do usuário do Azure Pipelines.

  1. No projeto do Azure DevOps, selecione Pipelines>Biblioteca no menu à esquerda.
  2. Na página Biblioteca, passe o mouse sobre o grupo de variáveis que deseja excluir e selecione o ícone Mais opções.
  3. Selecione Excluir no menu e, em seguida, selecione Excluir na tela de confirmação.

Gerenciar variáveis em um grupo de variáveis

Você pode alterar, adicionar ou excluir variáveis em grupos de variáveis usando a interface do usuário do Azure Pipelines.

  1. No projeto do Azure DevOps, selecione Pipelines>Biblioteca no menu à esquerda.
  2. Na página Biblioteca, selecione o grupo de variáveis que deseja atualizar. Você também pode passar o mouse sobre a lista do grupo de variáveis, selecionar o ícone Mais opções e selecionar Editar no menu.
  3. Na página de grupo de variáveis, você pode:
    • Altere qualquer um dos nomes ou valores de variáveis.
    • Exclua qualquer uma das variáveis selecionando o ícone da lixeira ao lado do nome da variável.
    • Altere as variáveis para secretas ou não secretas selecionando o ícone de cadeado ao lado do valor da variável.
    • Adicione novas variáveis selecionando + Adicionar.
  4. Depois de fazer as alterações, selecione Salvar.

Usar grupos de variáveis em pipelines

Você pode usar grupos de variáveis em pipelines YAML ou Clássicos. As alterações feitas em um grupo de variáveis estão automaticamente disponíveis para todas as definições ou estágios às quais o grupo de variáveis está vinculado.

Usar grupos de variáveis em pipelines YAML

Depois de autorizar um pipeline YAML a usar um grupo de variáveis, você poderá usar o grupo de variáveis ou as variáveis dentro dele no pipeline.

Autorizar o pipeline YAML a usar o grupo de variáveis

Se você nomear apenas o grupo de variáveis nos pipelines YAML, qualquer pessoa que possa enviar código por push para o repositório poderá extrair o conteúdo dos segredos no grupo de variáveis. Portanto, para usar um grupo de variáveis com pipelines YAML, você deverá autorizar o pipeline a usar o grupo. Os pipelines Clássicos podem usar grupos de variáveis sem autorização separada.

Você pode autorizar pipelines a usar seus grupos de variáveis usando a interface do usuário do Azure Pipelines.

  1. No projeto do Azure DevOps, selecione Pipelines>Biblioteca no menu à esquerda.
  2. Na página Biblioteca, selecione o grupo de variáveis que deseja autorizar.
  3. Na página do grupo de variáveis, selecione a guia Permissões do pipeline.
  4. Na tela Permissões de pipeline, selecione + e, em seguida, selecione um pipeline de projeto para autorizar. Ou selecione o ícone Mais ações, selecione Acesso aberto e selecione Acesso aberto novamente para confirmar.

A seleção de um pipeline autoriza esse pipeline a usar o grupo de variáveis. Para autorizar outro pipeline, selecione o ícone + novamente. Selecionar Acesso aberto autoriza todos os pipelines de projeto a usar o grupo de variáveis. O acesso aberto pode ser uma boa opção se você não tiver segredos no grupo.

Outra maneira de autorizar um grupo de variáveis é selecionar o pipeline, selecionar Editar e enfileirar um build manualmente. Você vê um erro de autorização de recurso e pode adicionar explicitamente o pipeline como um usuário autorizado do grupo de variáveis.

Usar o grupo de variáveis no pipeline YAML

Para usar uma variável de um grupo de variáveis, adicione uma referência ao nome do grupo em seu arquivo de pipeline YAML. Em seguida, você poderá usar as variáveis do grupo de variáveis em seu arquivo.

variables:
- group: my-variable-group

Você pode fazer referência a vários grupos de variáveis no mesmo pipeline. Se vários grupos de variáveis incluírem a mesma variável, o último grupo de variáveis que usa a variável no arquivo definirá o valor da variável. Para obter mais informações sobre precedência de variáveis, consulte Expansão de variáveis.

Você também pode fazer referência a um grupo de variáveis em um modelo. O arquivo de modelo variables.yml a seguir faz referência ao grupo de variáveis my-variable-group. O grupo de variáveis inclui uma variável chamada myhello.

variables:
- group: my-variable-group

O pipeline YAML faz referência ao modelo variables.yml e usa a variável $(myhello) do grupo de variáveis my-variable-group.

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

Usar variáveis de grupo de variáveis em pipelines YAML

Você acessa os valores de variável em um grupo de variáveis vinculado da mesma maneira que você acessa as variáveis que define dentro do próprio pipeline. Por exemplo, para acessar o valor de uma variável chamada customer em um grupo de variáveis vinculado ao pipeline, você pode usar $(customer) em um parâmetro de tarefa ou um script.

Se você usar variáveis autônomas e grupos de variáveis no arquivo de pipeline, use a sintaxe name-value para as variáveis autônomas.

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

Para fazer referência a uma variável em um grupo de variáveis, você poderá usar a sintaxe de macro ou uma expressão de runtime. Nos exemplos a seguir, o grupo my-variable-group tem uma variável chamada myhello.

Para usar uma expressão de runtime:

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

Para usar a sintaxe de macro:

variables:
- group: my-variable-group

steps:
- script: echo $(myhello)

Você não pode acessar variáveis secretas, incluindo variáveis criptografadas e variáveis do cofre de chaves, diretamente em scripts. Você deve passar essas variáveis como argumentos para uma tarefa. Para obter mais informações, consulte Variáveis secretas.

Usar grupos de variáveis em pipelines Clássicos

Os pipelines Clássicos podem usar grupos de variáveis sem autorização separada. Para usar um grupo de variáveis:

  1. Abrir seu pipeline Clássico.

  2. Selecione Variáveis>Grupos de variáveis e, em seguida, selecione Vincular grupo de variáveis.

  3. Em um pipeline de build, você verá uma lista de grupos disponíveis. Vincule um grupo de variáveis ao pipeline. Todas as variáveis no grupo estão disponíveis para uso no pipeline.

    Em um pipeline de lançamento, você também vê uma lista suspensa de estágios no pipeline. Vincule o grupo de variáveis ao pipeline propriamente dito ou a um ou mais estágios específicos do pipeline de lançamento. Se você vincular a uma ou mais estágios, as variáveis do grupo de variáveis serão definidas como escopo para essas estágios e não estarão acessíveis nos outros estágios do mesmo lançamento.

    Captura de tela que mostra a vinculação de um grupo de variáveis.

Quando você define uma variável com o mesmo nome em vários escopos, a precedência a seguir é usada, a precedência mais alta primeiro:

  1. Conjunto de variáveis na hora da fila
  2. Variável definida no pipeline
  3. Variável definida no grupo de variáveis

Para obter mais informações sobre precedência de variáveis, consulte Expansão de variáveis.

Observação

Variáveis em diferentes grupos vinculados a um pipeline no mesmo escopo (por exemplo, trabalho ou fase) colidirão e o resultado pode ser imprevisível. Use nomes diferentes para variáveis em todos os seus grupos de variáveis.