Gerenciar recursos de VM em ambientes

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

Este artigo descreve como usar recursos de máquina virtual (VM) em ambientes para gerenciar implantações do Azure Pipelines em várias máquinas. 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 seu pipeline.

Pré-requisitos

Nota

Para configurar um agente de grupo de implantação ou se você vir um erro ao registrar um recurso de ambiente VM, certifique-se de definir seu escopo de 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. No seu projeto de DevOps do Azure, vá para 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.

Copiar o script de registo

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 Token de Acesso Pessoal (PAT) do Azure DevOps para o usuário conectado, que expira três horas após o script ser gerado.

  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 Linux adicionadas ao ambiente. Para obter mais informações sobre como instalar o script de agente, consulte Agentes Linux auto-hospedados.

Executar o script copiado

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

    Captura de tela da mensagem do novo ambiente criado.

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

    Nota

    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 ecrã do separador Recursos.

Usar VMs em pipelines

Em seu pipeline YAML, você pode direcionar VMs fazendo referência ao seu ambiente. Por padrão, o trabalho tem como alvo todas as VMs registradas para o resourceName.

Nota

Quando você tenta novamente um estágio, a implantação é executada novamente em todas as VMs, não apenas em 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"

Nota

Os resourceType valores como virtualMachine diferenciam maiúsculas de minúsculas. Invólucro incorreto resulta em nenhum recurso correspondente encontrado.

Você pode implantar em VMs específicas no ambiente especificando-as em resourceName. O exemplo a seguir implanta 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 gerir etiquetas

As tags 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 tags que você pode usar.

Você pode adicionar tags ou remover tags 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 tags de VM.

Se você especificar várias tags, o pipeline usará apenas VMs que incluem todas as tags. O exemplo a seguir destina-se apenas a VMs que têm as windows tags e prod . As VMs que têm apenas uma ou nenhuma das tags 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 suportam tanto as estratégias como as runOnce rolling estratégias. Para obter mais informações sobre estratégias de implantação e ganchos de ciclo de vida, consulte Estratégias de implantação.

Ver o histórico de implementações

Selecione a guia Implantações para rastrear completamente as confirmações e itens de trabalho e um histórico de implantação entre pipelines por ambiente e recurso.

Captura de tela que mostra o modo de exibição Implantações de VM.

Remover uma VM de um ambiente

Para remover uma VM de um ambiente Linux, execute o seguinte comando em cada máquina.

./config.sh remove