Ambiente – recurso de máquina virtual

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

Use recursos de VM (máquina virtual) para gerenciar implantações em várias máquinas com pipelines YAML. Os recursos de VM permitem instalar agentes em seus servidores para implantações sem interrupção.

Os recursos de VM se conectam a ambientes. Depois de definir um ambiente, você pode adicionar VMs ao destino com implantações. A exibição do histórico de implantação em um ambiente fornece rastreabilidade da VM para o pipeline.

Pré-requisitos

Você deve ter pelo menos uma licença Básica e acesso às seguintes áreas:

  • o repositório conectado ao pipeline
  • a VM que você deseja conectar ao ambiente

Para obter mais informações sobre segurança para o Azure Pipelines, confira Recursos de segurança de pipeline.

Para adicionar uma VM a um ambiente, você deve ter a Função administrador para o pool de implantação correspondente. Um pool de implantação é um conjunto de servidores de destino disponíveis para a organização. Saiba mais sobre o pool de implantação e as permissões de ambiente.

Observação

Se você estiver configurando um agente de grupo de implantação ou se vir um erro ao registrar um recurso de ambiente de VM, defina o escopo PAT como Todas as organizações acessíveis.

Criar um recurso de VM

Observação

Você pode usar esse mesmo processo para configurar computadores físicos com um script de registro.

A primeira etapa na adição de um recurso de VM é definir um ambiente.

Definir um ambiente

  1. Selecione Criar ambiente ou Novo ambiente, dependendo se ele é seu primeiro ambiente.
  2. Especifique um Nome (obrigatório) para o ambiente e uma Descrição.
  3. Salve o novo ambiente.

Adicionar um recurso

  1. Selecione seu ambiente e escolha Adicionar recurso.

  2. Selecione Máquinas virtuais para seu tipo de Recurso. Em seguida, selecione Avançar.

    Add an environment.

  3. Escolha Windows ou Linux para o Sistema Operacional.

  4. Copie o script de registro. Seu script será um script do PowerShell, se você tiver selecionado o Windows, e um script do Linux, se tiver selecionado o Linux.

    Add a virtual machine.

  5. Execute o script copiado em cada uma das máquinas virtuais de destino que você deseja registrar nesse ambiente.

    • Se você estiver instalando no Windows, precisará executar o script de um administrador do PowerShell.
    • Se você estiver instalando no Linux, precisará ter permissão para baixar e executar scripts executáveis.

    Observação

    • O PAT (Token de Acesso Pessoal) para o usuário conectado é incluído no script. O PAT expira no dia em que você gera o script.
    • Se a sua VM já tiver algum agente em execução, forneça um nome exclusivo para o agente a registrar no ambiente.
    • Para saber mais sobre como instalar o script do agente, confira Agentes do Linux auto-hospedados e Agentes do Windows auto-hospedados. Os scripts do agente para recursos de VM são como os scripts para agentes auto-hospedados e você pode usar os mesmos comandos.
  6. Depois que sua VM é registrada, ela aparece como um recurso de ambiente na guia Recursos do ambiente.

  7. Para adicionar mais VMs, copie o script novamente. Selecione Adicionar recurso>Máquinas virtuais. Os scripts do Windows e do Linux são os mesmos para todas as VMs adicionadas ao ambiente.

  8. Quando o script de VM é instalado com êxito, sua VM aparece na lista de recursos para o ambiente.

    View resources.

Usar VM em pipelines

Direcionar VMs no pipeline fazendo referência ao ambiente. Por padrão, o trabalho de pipeline é executado para todas as VMs definidas para um ambiente com um resourceName.

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 valores resourceType diferenciam maiúsculas de minúsculas. Especificar a maiúscula incorreta resultará em nenhum recurso correspondente encontrado no ambiente. Confira o esquema YAML para obter mais informações.

Você pode selecionar uma máquina virtual específica no ambiente para receber apenas a implantação especificando-a por seu resourceName. Por exemplo, para direcionar a implantação apenas para o recurso de Máquina Virtual chamado USHAN-PC no ambiente VMenv, adicione o parâmetro resourceName e dê a ele o valor de USHAN-PC.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

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

Para saber mais sobre trabalhos de implantação, confira o esquema YAML.

Adicionar e gerenciar marcas

As marcas oferecem uma maneira de direcionar um conjunto de VMs específicas em um ambiente para implantação. Você pode adicionar marcas à VM como parte do script de registro interativo ou por meio da interface do usuário. As marcas são limitadas a 256 caracteres. Não há limite para o número de marcas que você pode usar.

Adicione ou remova marcas na interface do usuário da exibição de recursos selecionando Mais ações para um recurso de VM.

Set VM tags.

Quando você seleciona várias marcas, as VMs que incluem todas as marcas são usadas em seu pipeline. Por exemplo, esse pipeline tem como destino VMs com as marcas windows e prod. Se uma VM tiver apenas uma dessas marcas, ela não será tida como destino.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

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

Aplicar estratégia de implantação

Aplique uma estratégia de implantação para definir como seu aplicativo é implantado. A estratégia runOnce e a estratégia rolling para VMs têm suporte. Para obter mais informações sobre estratégias de implantação e ganchos de ciclo de vida, confira Trabalhos de implantação/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.

VMDeployments_view

Remover uma VM de um ambiente

Ambiente do Windows

Para remover VMs de um ambiente do Windows, execute o comando a seguir. Realize as seguintes tarefas:

  • Executar o comando a partir de um prompt de comando do PowerShell de administrador
  • Executar o comando em cada computador
  • Executar o comando no mesmo caminho de pasta que o comando de registro de ambiente foi executado
./config.cmd remove

Ambiente do Linux

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

./config.sh remove

Limitações conhecidas

Quando você tentar novamente um estágio, ele executará novamente a implantação em todas as VMs, e não apenas os destinos com falha.