Partilhar via


Criar e segmentar ambientes

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

Este artigo explica como criar e direcionar ambientes do Azure Pipelines. Um ambiente é uma coleção de recursos que você pode direcionar com implantações de um pipeline.

Um ambiente representa um destino lógico onde seu pipeline implanta software. Os nomes típicos de ambiente são Dev, Test, QA, Staging e Production.

Nota

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:

  • Histórico de implantação. O nome do pipeline e os detalhes de 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, você pode usar o histórico de implantação de um ambiente para identificar a origem das alterações.

  • Rastreabilidade de commits e itens de trabalho. Você pode exibir 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 controlar se uma confirmação de alteração de código ou um item de trabalho de recurso/correção de bug chegou a um ambiente.

  • Integridade do recurso 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 ao Kubernetes e aos tipos de recursos de 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 do YAML de um editor de código externo, o pipeline falha.

Pré-requisitos

Para adicionar um ambiente, você precisa dos seguintes pré-requisitos:

Criar um ambiente

Para criar seu primeiro ambiente:

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

  2. Selecione Pipelines>Environments>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 mais tarde.

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

Gorjeta

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

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

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

Um trabalho de implantação é uma coleção de etapas que são executadas sequencialmente. Você pode usar um trabalho de implantação para direcionar um grupo inteiro de recursos de ambiente, conforme mostrado no trecho YAML de exemplo a seguir. O pipeline é executado na máquina porque esse nome de myVM 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 de ambiente específico 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 a que o trabalho de implantação se destina.

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

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)

Utilizar verificações de aprovação manuais

Para controlar implantações em ambientes de produção, o Azure Pipelines dá suporte a verificações manuais de aprovação em ambientes. As verificações de aprovação estão disponíveis para os proprietários de recursos controlarem quando um estágio em um pipeline consome o recurso. Os proprietários de recursos podem definir aprovações e verificações que devem ser satisfeitas antes que um estágio que consuma esse recurso possa começar.

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

Ver ambientes em detalhes de execução

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

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

Nota

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

Ver o histórico de implementações

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

  • Visualize trabalhos de todos os pipelines destinados a um ambiente específico. Por exemplo, dois microsserviços que têm 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 detalhar os detalhes do trabalho, selecione as guias Alterações e itens de trabalho em uma página de implantação. As guias mostram listas de confirmações e itens de trabalho implantados 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 para esse 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 ao mesmo trabalho, haverá vários resultados na guia Itens de trabalho.

    Captura de tela de 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 utilizador

Você pode controlar quem pode criar, exibir, usar e gerenciar ambientes com permissões de usuário. Há quatro funções: Criador com um 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 utilizador da página Segurança, selecione Adicionar e, em seguida, selecione um Utilizador ou grupo e uma Função adequada.

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

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 o painel Permissões de pipeline da página Segurança para autorizar todos os pipelines ou selecionados para implantação no ambiente.

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

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

FAQ

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

Se vir a mensagem Acesso negado: {Utilizador} precisa de permissões Criar para executar a ação, aceda a Utilizadores das Definições>da Organização para verificar se tem a função de Interveniente. A função Stakeholder não pode criar ambientes porque as partes interessadas não têm acesso ao repositório.

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.

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

Se vir a mensagem Trabalho XXXX: Ambiente XXXX não foi encontrado. O ambiente não existe ou não foi autorizado para uso., existem várias razões possíveis para a falha.

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

  • Os Pipelines do Azure podem não ter informações sobre o usuário que está criando o ambiente.

    Quando você se refere a 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 da Web do Azure Pipelines e se refere a um ambiente que ainda não foi criado.
    • Você atualiza o arquivo YAML usando o editor da Web do Azure Pipelines e salva o pipeline depois de adicionar a 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.

    • Atualizar 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, faz com que um pipeline de integração manual ou contínua seja acionado.

    Anteriormente, o Azure Pipelines lidava com esses casos adicionando todos os colaboradores 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. Para evitar esse resultado, o Azure Pipelines agora falha nesses trabalhos.