Ambiente - recurso de máquina virtual

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

Use recursos de máquina virtual (VM) para gerenciar implantações em várias máquinas com pipelines YAML. Os recursos de VM permitem instalar agentes em seus próprios servidores para implantações contínuas.

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 Basic e acesso às seguintes áreas:

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

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

Para adicionar uma VM a um ambiente, você deve ter a função de 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.

Nota

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

Criar um recurso de VM

Nota

Você pode usar esse mesmo processo para configurar máquinas físicas com um script de registro.

A primeira etapa para adicionar um recurso de VM é definir um ambiente.

Definir um ambiente

  1. Selecione Criar ambiente ou Novo ambiente, dependendo se é o seu primeiro ambiente.
  2. Adicione 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 Seguinte.

    Add an environment.

  3. Escolha Windows ou Linux para o sistema operacional.

  4. Copie o script de registro. Seu script será um script PowerShell se você selecionou Windows e um script Linux se você selecionou Linux.

    Add a virtual machine.

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

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

    Nota

    • O Token de Acesso Pessoal (PAT) para o usuário conectado é incluído no script. A PAT expira no dia em que gera o script.
    • Se sua VM já tiver qualquer outro agente em execução, forneça um nome exclusivo para o agente se registrar no ambiente.
    • Para saber mais sobre como instalar o script de agente, consulte Agentes Linux auto-hospedados e Agentes Windows auto-hospedados. Os scripts de 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 Windows e Linux são os mesmos para todas as VMs adicionadas ao ambiente.

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

    View resources.

Usar VM em pipelines

Direcione VMs em seu pipeline fazendo referência ao ambiente. Por padrão, o trabalho de pipeline é executado para todas as VMs definidas para um ambiente com um resourceNamearquivo .

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 diferenciam maiúsculas de minúsculas. Especificar o invólucro incorreto resultará em nenhum recurso correspondente encontrado no ambiente. Consulte o esquema YAML para obter mais informações.

Você pode selecionar uma máquina virtual específica do ambiente para receber somente a implantação especificando-a pelo .resourceName Por exemplo, para direcionar a implantação somente para o recurso de Máquina Virtual nomeado USHAN-PC no ambiente, adicione o VMenvresourceName parâmetro e atribua-lhe 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, consulte o esquema YAML.

Adicionar e gerir etiquetas

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

Adicione ou remova tags 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 tags, as VMs que incluem todas as tags são usadas em seu pipeline. Por exemplo, esse pipeline tem como alvo VMs com as windows tags e prod . Se uma VM tiver apenas uma dessas tags, ela não será direcionada.

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 será implementado. A runOnce estratégia e a rolling estratégia para VMs são suportadas. Para obter mais informações sobre estratégias de implantação e ganchos de ciclo de vida, consulte Trabalhos de implantação/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.

VMDeployments_view

Remover uma VM de um ambiente

Ambiente Windows

Para remover VMs de um ambiente Windows, execute o seguinte comando. Certifique-se de executar as seguintes tarefas:

  • Execute o comando a partir de um prompt de comando do PowerShell do administrador
  • Execute o comando em cada máquina
  • Execute o comando no mesmo caminho da pasta em que o comando de registro do ambiente foi executado
./config.cmd remove

Ambiente Linux

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

./config.sh remove

Limitações conhecidas

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