Compartilhar via


Criar e direcionar ambientes do Azure DevOps

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020

Este artigo explica como criar e direcionar ambientes do Azure Pipelines. Um ambiente é um grupo de recursos que você pode ter como alvo de implantação de um pipeline.

Um ambiente representa um destino lógico em que seu pipeline implanta software. Nomes de ambiente comuns incluem Desenvolvimento, Teste, QA, Preparo e Produção.

Observação

Os ambientes do Azure DevOps não estão disponíveis em pipelines clássicos. Para pipelines clássicos, os grupos de implantação fornecem funcionalidade semelhante.

Os ambientes oferecem os seguintes benefícios:

  • Histórico de implantação. O nome do pipeline e os detalhes da execução são registrados para implantações em um ambiente e seus recursos. No contexto de vários pipelines direcionados ao mesmo ambiente ou recurso, você pode usar o histórico de implantação de um ambiente para identificar a origem das alterações.

  • Rastreabilidade de confirmações e itens de trabalho. Você pode exibir tarefas na execução de pipeline que se destina a um ambiente. Você também pode exibir os commits e os itens de trabalho implantados recentemente no ambiente. A rastreabilidade também permite rastrear se uma confirmação de alteração de código ou um item de trabalho de recurso/correção de bug atingiu um ambiente.

  • Integridade dos recursos de diagnóstico. Você pode validar se o aplicativo está funcionando no estado desejado.

  • Segurança. Você pode proteger ambientes especificando quais usuários e pipelines têm permissão para direcionar um ambiente.

Um ambiente é um agrupamento de recursos em que os próprios recursos representam destinos de implantação reais. Atualmente, os ambientes do Azure Pipelines dão suporte aos tipos de recursos do Kubernetes e da máquina virtual.

Se um pipeline YAML se referir a um ambiente que não existe:

  • Quando o usuário que executa a operação é conhecido e as permissões podem ser atribuídas, o Azure Pipelines cria automaticamente o ambiente.

  • Quando o Azure Pipelines não tem informações sobre o usuário que executa a operação, por exemplo, em uma atualização YAML de um editor de código externo, o pipeline falha.

Pré-requisitos

Categoria Requisitos
Azure DevOps - Um projeto do Azure DevOps.
– Capacidade de executar pipelines em agentes hospedados pela Microsoft. Você pode comprar um trabalho paralelo ou solicitar uma camada gratuita.
– Conhecimento básico do YAML e do Azure Pipelines. Para mais informações, veja Como criar seu primeiro pipeline.
- Permissões:
     Para adicionar ambientes, a função Criador para ambientes em seu projeto. Por padrão, os membros dos grupos Administradores de Build, Administradores de Versão e Administradores de Projeto também podem criar ambientes.
Azul Uma assinatura do Azure.

Criar um ambiente

Para criar seu primeiro ambiente:

  1. Faça login em sua organização do Azure DevOps em https://dev.azure.com/{yourorganization} e abra seu projeto.

  2. Selecione Pipelines>Ambientes>Criar ambiente.

    Captura de tela que mostra Ambientes.

  3. Insira informações para o ambiente e selecione Criar. Você pode adicionar recursos a um ambiente existente posteriormente.

    Captura de tela da criação de um novo ambiente.

Dica

Crie um ambiente vazio e faça referência a ele de trabalhos de implantação para registrar o histórico de implantação no ambiente.

Para criar e gerenciar ambientes programaticamente, use a API REST de Ambientes do Azure DevOps.

Você pode usar o Azure Pipelines para implantar em ambientes. Para obter mais informações, confira Compile e implante no Serviço de Kubernetes do Azure com o Azure Pipelines.

Direcionar um ambiente de um trabalho de implantação

Um trabalho de implantação contém etapas que são executadas sequencialmente. Você pode usar um trabalho de implantação para direcionar um grupo de recursos de ambiente inteiro, conforme mostrado no snippet YAML de exemplo a seguir. O pipeline é executado no myVM computador porque esse nome de recurso é especificado.

- stage: deploy
  jobs:
  - deployment: DeployWeb
    displayName: deploy Web App
    pool:
      vmImage: 'Ubuntu-latest'
    # creates an environment if it doesn't exist
    environment: 
      name: 'smarthotel-dev'
      resourceName: myVM
      resourceType: virtualMachine
    strategy:
      runOnce:
        deploy:
          steps:
          - script: echo Hello world

Direcionar-se a um recurso específico de um ambiente a partir de um trabalho de implantação

Você pode definir o escopo do destino de implantação para um recurso específico dentro do ambiente, para que possa registrar o histórico de implantação no recurso específico. As etapas do trabalho de implantação herdam automaticamente os detalhes da conexão de serviço do recurso que é o alvo do trabalho de implantação.

No exemplo a seguir, o valor do kubernetesServiceConnection é passado automaticamente para a tarefa a partir da entrada environment.resource.

environment: 
  name: 'smarthotel-dev.bookings'
strategy: 
 runOnce:
   deploy:
     steps:
     - task: KubernetesManifest@1
       displayName: Deploy to Kubernetes cluster
       inputs:
         action: deploy
         namespace: $(k8sNamespace)
         manifests: $(System.ArtifactsDirectory)/manifests/*
         imagePullSecrets: $(imagePullSecret)
         containers: $(containerRegistry)/$(imageRepository):$(tag)

Observação

Se você estiver usando um cluster do AKS privado, verifique se está conectado à rede virtual do cluster, pois o ponto de extremidade do servidor de API não é exposto por meio de um endereço IP público.

O Azure Pipelines recomenda configurar um agente auto-hospedado em uma VNET que tenha acesso à rede virtual do cluster. Consulte Opções para se conectar ao cluster privado para obter detalhes.

Usar verificações de aprovação manual

Para controlar implantações em ambientes de produção, o Azure Pipelines dá suporte a verificações manuais de aprovação. Essas verificações permitem que os proprietários de recursos controlem quando um estágio de um pipeline consome o recurso. Os proprietários de recursos podem definir aprovações e verificações que devem ser atendidas antes que um estágio que consome esse recurso possa começar.

As funções de Criador, Administrador e Usuário do ambiente, mas não a função de Leitor, podem gerenciar aprovações e verificações. Como proprietário do ambiente, você pode controlar manualmente quando um estágio deve ser executado usando verificações de aprovação. Para obter mais informações, confira Definir aprovações e verificações.

Veja os ambientes nos detalhes de execução

Na guia Ambientes dos detalhes da execução de pipeline, você pode ver todos os ambientes que foram alvo dos trabalhos de implantação de uma execução de pipeline.

Captura de tela que mostra Ambientes nos detalhes da execução.

Observação

Se você estiver usando um cluster privado do AKS (Serviço de Kubernetes do Azure), a guia Ambientes não estará disponível.

Exibir histórico de implantação

Você pode selecionar a guia Implantações na seção Ambientes do Azure Pipelines para exibir o histórico de implantação.

  • Exiba trabalhos de todos os pipelines direcionados a um ambiente específico. Por exemplo, dois microsserviços, cada um com seu próprio pipeline, podem ser implantados no mesmo ambiente. O histórico de implantação ajuda a identificar todos os pipelines que afetam o ambiente e também ajuda a visualizar a sequência de implantações por cada pipeline.

    Captura de tela que mostra a listagem do histórico de implantação.

  • Para examinar os detalhes do trabalho, selecione as abas Alterações e Itens de Trabalho em uma página de implantação. As guias mostram listas de confirmações e itens de trabalho implementados no ambiente. Cada item de lista representa novos itens nessa implantação.

    Na guia Alterações, a primeira listagem inclui todas as confirmações até esse ponto, e as listagens a seguir incluem apenas as alterações desse trabalho. Se várias confirmações estiverem vinculadas ao mesmo trabalho, haverá vários resultados na guia Alterações.

    Captura de tela de confirmações no histórico de implantação.

  • Se vários itens de trabalho estiverem vinculados à mesma tarefa, há vários resultados na guia Itens de trabalho.

    Captura de tela dos itens de trabalho no histórico de implantação.

Segurança

Você pode proteger seus ambientes definindo permissões de usuário e permissões de pipeline.

Permissões de usuário

Você pode controlar quem pode criar, visualizar, usar e gerenciar ambientes com permissões de usuário. Existem quatro funções: Criador com escopo de todos os ambientes, Leitor, Usuário e Administrador.

Para adicionar um usuário usando o painel Permissões de usuário de um ambiente, vá para o ambiente específico que você deseja autorizar, selecione o ícone Mais ações e selecione Segurança.

No painel Permissões de usuário da página Segurança, selecione Adicionar e, em seguida, selecione um Usuário ou grupo e uma Função adequada.

No painel de permissões de usuário, você também pode definir as permissões herdadas e anular as funções do seu ambiente.

Função Descrição
Criador Função global, disponível na opção de segurança do hub de ambientes. Os membros dessa função podem criar o ambiente no projeto. Os colaboradores são adicionados como membros por padrão. Necessário para disparar um pipeline YAML quando o ambiente ainda não existir.
Leitor Os membros dessa função podem exibir o ambiente.
Usuário Os membros dessa função podem usar o ambiente ao criar ou editar pipelines YAML.
Administrador Os membros dessa função podem administrar permissões, criar, gerenciar, exibir e usar ambientes. Para um ambiente específico, seu criador é adicionado como Administrador por padrão. Os administradores também podem abrir o acesso a um ambiente para todos os pipelines.

Importante

Quando você cria um ambiente, somente o criador tem a função de administrador.

Função Descrição
Criador Função global, disponível na opção de segurança do hub de ambientes. Os membros dessa função podem criar o ambiente no projeto. Os colaboradores são adicionados como membros por padrão. Necessário para disparar um pipeline YAML quando o ambiente ainda não existir.
Leitor Os membros dessa função podem exibir o ambiente.
Usuário Os membros dessa função podem usar o ambiente ao criar ou editar pipelines YAML.
Administrador Além de usar o ambiente, os membros dessa função podem gerenciar a associação de todas as outras funções para o ambiente. Os criadores são adicionados como membros por padrão.

Permissões de pipeline

Use o painel Permissões de pipeline da página Segurança para autorizar todos os pipelines ou os pipelines selecionados para implementação no ambiente.

  • Para remover o acesso aberto no ambiente ou no recurso, selecione Restringir permissão em Permissões de Pipeline.

  • Quando as permissões são restritas, você pode permitir que fluxos de trabalho específicos sejam implantados no ambiente ou em um recurso específico. Selecione + e escolha na lista os pipelines que deseja permitir.

Perguntas frequentes

Por que recebo uma mensagem de erro quando tento criar um ambiente?

Se você vir a mensagem Acesso negado: {Usuário} precisa de permissões para criar para executar a ação, vá para Configurações da Organização>Usuários para verificar se você tem a função Stakeholder. A função Stakeholder não pode criar ambientes porque os stakeholders não têm acesso ao repositório.

Altere o nível de acesso e verifique se você pode criar ambientes. Para mais informações, confira Perguntas frequentes sobre gerenciamento de usuários e permissões.

Por que eu recebo um erro informando que um ambiente não pode ser encontrado?

Se você vir a mensagem Trabalho XXXX: O ambiente XXXX não pôde ser encontrado. O ambiente não existe ou não foi autorizado para uso., existem vários motivos possíveis para a falha.

  • Os parâmetros de runtime não funcionam ao criar ambientes, porque os parâmetros são expandidos somente em tempo de execução. Você pode usar variáveis para criar um ambiente ou usar templateContext para transmitir propriedades para modelos.

    Quando você indica um ambiente que não existe em um arquivo de pipeline YAML, o Azure Pipelines cria automaticamente o ambiente nos seguintes casos:

    • Você usa o assistente de criação de pipeline YAML na experiência Web do Azure Pipelines e indica um ambiente que ainda não está criado.
    • Você atualiza o arquivo YAML usando o editor Web do Azure Pipelines e salva o pipeline após adicionar uma referência ao ambiente.

    Nos casos a seguir, o Azure Pipelines não tem informações sobre o usuário que está criando o ambiente, portanto, o pipeline falha:

    • Você atualiza o arquivo YAML usando outro editor de código externo.
    • Você adiciona uma referência a um ambiente que não existe e, em seguida, promove o acionamento de um pipeline manual ou de integração contínua.

    Anteriormente, O Azure Pipelines tratava desses casos adicionando todos os colaboradores do projeto à função de administrador do ambiente. Qualquer membro do projeto poderia alterar essas permissões e impedir que outras pessoas acessassem o ambiente. Para evitar esse resultado final, agora o Azure Pipelines falha nesses trabalhos.