Criar e selecionar um ambiente

Serviços de DevOps do Azure | Azure DevOps Server 2022 | Azure DevOps Server 2020

Um ambiente é uma coleção de recursos que você pode direcionar com implantações de um pipeline. Exemplos típicos de nomes de ambiente são Dev, Test, QA, Staging e Production. Um ambiente de DevOps do Azure representa um destino lógico onde seu pipeline implanta software.

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

Os ambientes oferecem os seguintes benefícios.

Benefício Description
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 destinados ao mesmo ambiente ou recurso, o histórico de implantação de um ambiente é útil para identificar a origem das alterações.
Rastreabilidade de autorizações e itens de trabalho Exiba trabalhos dentro da execução de pipeline que visam um ambiente. Você também pode exibir as confirmações e os itens de trabalho que foram recém-implantados no ambiente. A rastreabilidade também permite rastrear se uma alteração de código (confirmação) ou recurso/correção de bug (itens de trabalho) chegou a um ambiente.
Integridade do recurso de diagnóstico Valide se o aplicativo está funcionando no estado desejado.
Segurança Proteja ambientes especificando quais usuários e pipelines têm permissão para direcionar um ambiente.

Embora um ambiente seja um agrupamento de recursos, os próprios recursos representam destinos de implantação reais. Os tipos de recurso Kubernetes e máquina virtual são suportados no momento.

Quando você cria um pipeline YAML e se refere a um ambiente que não existe, o Azure Pipelines cria automaticamente o ambiente quando o usuário que executa a operação é conhecido e as permissões podem ser atribuídas. Quando o Azure Pipelines não tem informações sobre o usuário que está criando o ambiente (por exemplo: uma atualização do YAML de um editor de código externo), seu pipeline falhará se o ambiente ainda não existir.

Pré-requisitos

Criar um ambiente

  1. Inicie sessão na sua organização: https://dev.azure.com/{yourorganization} e selecione o seu projeto.

  2. Selecione Pipelines>Environments>Criar ambiente.

    Environments

  3. Insira informações para o ambiente e selecione Criar. Os recursos podem ser adicionados a um ambiente existente posteriormente.

    Screenshot of creating a new environment.

Use um Pipeline para criar e implantar em ambientes também. Para obter mais informações, consulte o guia de instruções.

Gorjeta

Você pode criar um ambiente vazio e fazer referência a ele a partir de trabalhos de implantação. Isso permite registrar o histórico de implantação no ambiente.

Direcionar um ambiente a partir de um trabalho de implantação

Um trabalho de implantação é uma coleção de etapas a serem executadas sequencialmente. Um trabalho de implantação pode ser usado para direcionar um ambiente inteiro (grupo de recursos), conforme mostrado no trecho YAML a seguir. O pipeline será executado na máquina myVM porque o nome do 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 um recurso específico dentro de um ambiente a partir do trabalho de implantação

Você pode definir o escopo do destino de implantação para um recurso específico dentro do ambiente. Em seguida, você pode registrar o histórico de implantação em um recurso específico dentro do ambiente. As etapas do trabalho de implantação herdam automaticamente os detalhes da conexão de serviço do recurso direcionado pelo trabalho de implantação.

environment: 
  name: 'smarthotel-dev.bookings'
strategy: 
 runOnce:
   deploy:
     steps:
     - task: KubernetesManifest@0
       displayName: Deploy to Kubernetes cluster
       inputs:
         action: deploy
         namespace: $(k8sNamespace)
         manifests: $(System.ArtifactsDirectory)/manifests/*
         imagePullSecrets: $(imagePullSecret)
         containers: $(containerRegistry)/$(imageRepository):$(tag)
         # value for kubernetesServiceConnection input automatically passed down to task by environment.resource input

Ambiente em detalhes de execução

Todos os ambientes que são direcionados por trabalhos de implantação de uma execução específica de um pipeline podem ser encontrados na guia Ambientes dos detalhes da execução do pipeline.

Environments in run details

Se você estiver usando um cluster privado do AKS, a guia Ambientes não estará disponível.

Aprovações

Controle manualmente quando um estágio deve ser executado usando verificações de aprovação. Use verificações de aprovação para controlar implantações em ambientes de produção. As verificações estão disponíveis para o proprietário do recurso controlar quando um estágio em um pipeline consome um recurso. Como proprietário de um recurso, como um ambiente, você pode definir aprovações e verificações que devem ser satisfeitas antes que um estágio que consuma esse recurso seja iniciado.

Suportamos verificações manuais de aprovação em ambientes. Para obter mais informações, consulte Aprovações.

As funções de Criador, Administrador e usuário podem gerenciar aprovações e verificações. A função Leitor não pode gerenciar aprovações e verificações.

Histórico de implementações

A visualização do histórico de implantação em ambientes oferece as seguintes vantagens.

  • Visualize trabalhos de todos os pipelines destinados a um ambiente específico. Por exemplo, dois microsserviços, cada um com seu próprio pipeline, estão implantando no mesmo ambiente. A listagem do histórico de implantação ajuda a identificar todos os pipelines que afetam esse ambiente e também ajuda a visualizar a sequência de implantações por cada pipeline.

    Screenshot of deployment history listing.

  • Analise detalhadamente os detalhes do trabalho para ver a lista de confirmações e itens de trabalho que foram implantados no ambiente. A lista de confirmações e itens de trabalho são os novos itens entre implantações. Sua primeira listagem inclui todos os compromissos e as listagens a seguir incluirão apenas alterações. Se várias confirmações estiverem vinculadas à mesma solicitação pull, você verá vários resultados nas guias de itens de trabalho e alterações.

    Screenshot of commits under deployment history.

  • Se vários itens de trabalho estiverem vinculados à mesma solicitação pull, você verá vários resultados na guia itens de trabalho.

    Screenshot of work items under deployment history.

Segurança

Permissões de utilizador

Controle quem pode criar, visualizar, usar e gerenciar os ambientes com permissões de usuário. Há quatro funções - Criador (escopo: todos os ambientes), Leitor, Usuário e Administrador. No painel de permissões de usuário do ambiente específico, você pode definir as permissões herdadas e substituir as funções para cada ambiente.

  1. Vá para o ambiente específico que você deseja autorizar.
  2. Selecione >Segurança para visualizar as configurações.
  3. Selecione Permissões de> utilizador+Adicionar>utilizador ou grupo e, em seguida, selecione uma função adequada.
Função Description
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 contribuidores são adicionados como membros por padrão. Necessário para acionar um pipeline YAML quando o ambiente ainda não existe.
Leitor Os membros dessa função podem exibir o ambiente.
Utilizador 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 Admininistrator 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 Description
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 contribuidores são adicionados como membros por padrão. Necessário para acionar um pipeline YAML quando o ambiente ainda não existe.
Leitor Os membros dessa função podem exibir o ambiente.
Utilizador 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 permissões de pipeline para autorizar todos ou pipelines selecionados para implantação no ambiente.

  • Para remover o acesso aberto no ambiente ou recurso, selecione Restringir permissão em Permissões de pipeline.
  • Para permitir que pipelines específicos sejam implantados em um ambiente ou recurso específico, selecione + e escolha na lista de pipelines.

Próximos passos

Definir aprovações e verificações

FAQ

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

R: Se vir a mensagem "Acesso negado: {Utilizador} precisa de permissões para executar a ação", verifique as permissões ao nível da organização. Aceda a Definições da Organização>Utilizadores e verifique se tem a função de interveniente. A função de interveniente não pode criar ambientes. Altere o nível de acesso e, em seguida, verifique se consegue criar ambientes. Para obter mais informações, veja FAQ sobre a gestão de utilizadores e permissões.

P: Por que estou recebendo o erro "Trabalho XXXX: Ambiente XXXX não pôde ser encontrado. O ambiente não existe ou não foi autorizado para ser utilizado”?

R: Estas são algumas das possíveis razões da falha:

  • Quando você cria um pipeline YAML e se refere a um ambiente que não existe no arquivo YAML, o Azure Pipelines cria automaticamente o ambiente em alguns casos:

    • Use o assistente de criação de pipeline YAML na experiência Web do Azure Pipelines e faça referência a um ambiente que ainda não foi criado.
    • Quando atualiza o ficheiro YAML com o editor Web do Azure Pipelines e guarda o pipeline depois de adicionar uma referência a um ambiente que não existe.
  • Nos fluxos a seguir, o Azure Pipelines não tem informações sobre o usuário que está criando o ambiente: você atualiza o arquivo YAML usando outro editor de código externo, adiciona uma referência a um ambiente que não existe e faz com que um pipeline de integração manual ou contínua seja acionado. Nesse caso, o Azure Pipelines não sabe sobre o usuário. Anteriormente, para lidar com este caso, adicionávamos todos os contribuidores do projeto à função de administrador do ambiente. Desta forma, qualquer membro do projeto podia alterar estas permissões e impedir que outras pessoas acedessem ao ambiente.

  • Você pode usar variáveis para criar o ambiente ou usar templateContext para passar propriedades para modelos. Os parâmetros de tempo de execução não funcionarão ao criar o ambiente porque são expandidos em tempo de execução.

  • Um usuário com nível de acesso de partes interessadas não pode criar o ambiente, pois as partes interessadas não têm acesso ao repositório.