Gerenciar recursos de VM em ambientes

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

Este artigo descreve como usar recursos de VM (máquina virtual) em ambientes para gerenciar implantações do Azure Pipelines em vários computadores. Você também pode instalar agentes em seus próprios servidores para implantações contínuas.

Os recursos de VM podem existir em ambientes, como Desenvolvimento, Teste ou Produção. Depois de definir um ambiente, você pode adicionar VMs ao destino com implantações. O histórico de implantação do ambiente fornece rastreabilidade de cada VM para o pipeline.

Pré-requisitos

  • Acesso a um repositório de origem conectado ao pipeline.
  • Acesso e permissão para baixar e executar scripts executáveis nas VMs que você deseja conectar ao ambiente.
  • Permissões de Administrador de Projeto ou Administrador de Build no projeto do Azure DevOps que contém o ambiente. Para obter mais informações, consulte Recursos de segurança do pipeline.
  • Função de administrador para o pool de implantação ou conjunto de servidores de destino disponíveis para a organização. Para obter mais informações, consulte permissões de ambiente e pool de implantação.

Observação

Para configurar um agente de grupo de implantação ou se você vir um erro ao registrar um recurso de ambiente de VM, certifique-se de definir o escopo do token de acesso pessoal (PAT) como Todas as organizações acessíveis.

Criar o ambiente

Use o procedimento a seguir para adicionar um recurso de VM a um ambiente. Você pode usar o mesmo processo para configurar máquinas físicas.

Adicionar um recurso de VM

  1. Em seu projeto do Azure DevOps, acesse Ambientes de Pipelines> e selecione Criar ambiente ou Novo ambiente.

  2. Na primeira tela Novo ambiente, adicione um Nome e uma Descrição opcional.

  3. Em Recurso, selecione Máquinas virtuais e, em seguida, selecione Avançar.

    Captura de tela que mostra a adição de um ambiente.

Copie o script de registro

Os scripts de agente para recursos de VM são como os scripts para agentes auto-hospedados e usam os mesmos comandos. Os scripts incluem um PAT (Token de Acesso Pessoal) do Azure DevOps para o usuário conectado, que expira três horas após a geração do script.

  1. Na próxima tela Novo ambiente , escolha Linux em Sistema operacional.

  2. Copie o script de registro do Linux.

    Captura de tela que mostra a adição de uma máquina virtual.

O script é o mesmo para todas as VMs do Linux adicionadas ao ambiente. Para obter mais informações sobre como instalar o script do agente, consulte Agentes Linux auto-hospedados.

Executar o script copiado

  1. Selecione Fechar e observe que o novo ambiente é criado. Para copiar o script novamente, por exemplo, se o PAT expirar, selecione Adicionar recurso.

    Captura de tela da nova mensagem de criação do ambiente.

  2. Execute o script copiado em cada VM de destino que você deseja registrar no ambiente.

    Observação

    Se a VM já tiver outro agente em execução, forneça um nome exclusivo para o agente se registrar no ambiente.

Depois que a VM é registrada, ela aparece como um recurso na guia Recursos do ambiente.

Captura de tela da guia Recursos.

Usar VMs em pipelines

No pipeline YAML, você pode direcionar VMs referenciando seu ambiente. Por padrão, o trabalho tem como destino todas as VMs registradas para o resourceName.

Observação

Quando você repete um estágio, a implantação é executada novamente em todas as VMs, não apenas nos destinos com falha.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

jobs:
- deployment: VMDeploy
  displayName: Deploy to VM
  environment: 
   name: VMenv
   resourceName: VMenv
   resourceType: virtualMachine
  strategy:
     runOnce:
        deploy:   
          steps:
            - script: echo "Hello world"

Observação

Os resourceType valores como virtualMachine diferenciam maiúsculas de minúsculas. O uso incorreto de maiúsculas e minúsculas resulta em nenhum recurso correspondente encontrado.

Você pode implantar em VMs específicas no ambiente especificando-as no resourceName. O exemplo a seguir é implantado somente no recurso de VM nomeado RESOURCE-PC no VMenv ambiente.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

jobs:
- deployment: VMDeploy
  displayName: Deploy to VM
  environment: 
    name: VMenv
    resourceType: virtualMachine
    resourceName: RESOURCE-PC # only deploy to the VM resource named RESOURCE-PC
  strategy:
    runOnce:
      deploy:   
          steps:
          - script: echo "Hello world"

Para obter mais informações sobre trabalhos de implantação de pipeline YAML, consulte o esquema de pipelines YAML.

Adicionar e gerenciar marcas

As marcas são uma maneira de direcionar um conjunto específico de VMs em um ambiente para implantação. As tags são limitadas a 256 caracteres cada. Não há limite para o número de marcas que você pode usar.

Você pode adicionar ou remover marcas para VMs no script de registro interativo ou por meio da interface do usuário selecionando Mais ações para um recurso de VM.

Captura de tela que mostra a configuração de marcas de VM.

Se você especificar várias marcas, o pipeline usará apenas VMs que incluem todas as marcas. O exemplo a seguir tem como destino apenas as VMs que têm as windows marcas e prod . As VMs que têm apenas uma ou nenhuma das marcas não são direcionadas.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

jobs:
- deployment: VMDeploy
  displayName: Deploy to VM
  environment: 
    name: VMenv
    resourceType: virtualMachine
    tags: windows,prod # only deploy to VMs with both windows and prod tags
  strategy:
    runOnce:
      deploy:   
          steps:
          - script: echo "Hello world"

Aplicar estratégia de implantação

Você pode aplicar uma implantação strategy para definir como implantar seu aplicativo. As VMs dão suporte às runOnce estratégias e .rolling Para obter mais informações sobre estratégias de implantação e ganchos de ciclo de vida, consulte Estratégias de implantação.

Exibir histórico de implantação

Selecione a guia Implantações para uma capacidade completa de rastreamento de confirmações e itens de trabalho, bem como um histórico de implantação entre pipelines por ambiente e recurso.

Captura de tela que mostra a exibição de implantações de VM.

Remover uma VM de um ambiente

Para remover uma VM de um ambiente Linux, execute o comando a seguir em cada computador.

./config.sh remove