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
Em seu projeto do Azure DevOps, acesse Ambientes de Pipelines> e selecione Criar ambiente ou Novo ambiente.
Na primeira tela Novo ambiente, adicione um Nome e uma Descrição opcional.
Em Recurso, selecione Máquinas virtuais e, em seguida, selecione Avançar.
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.
Na próxima tela Novo ambiente , escolha Linux em Sistema operacional.
Copie o script de registro do Linux.
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
Selecione Fechar e observe que o novo ambiente é criado. Para copiar o script novamente, por exemplo, se o PAT expirar, selecione Adicionar recurso.
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.
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.
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.
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