Integrar o DevTest Labs nos Pipelines do Azure
Pode utilizar a extensão Azure DevTest Labs Tasks para integrar Azure DevTest Labs em pipelines de integração e entrega contínua de Pipelines do Azure (CI/CD). A extensão instala várias tarefas nos Pipelines do Azure, incluindo:
- Criar uma VM (máquina virtual)
- Criar uma imagem personalizada a partir de uma VM
- Eliminar uma VM
Estas tarefas facilitam, por exemplo, implementar rapidamente uma VM de imagem dourada , executar um teste específico e, em seguida, eliminar a VM.
Este artigo mostra como utilizar Azure DevTest Labs Tasks para criar e implementar uma VM, criar uma imagem personalizada e, em seguida, eliminar a VM, tudo num pipeline de versão. Normalmente, realizaria estas tarefas separadamente nos seus próprios pipelines de compilação, teste e implementação.
Introdução ao Azure DevTest Labs
Novo no Azure? Crie uma conta gratuita do Azure.
Já utiliza o Azure? Introdução ao seu primeiro laboratório no DevTest Labs: Comece a utilizar Azure DevTest Labs em minutos.
Pré-requisitos
No portal do Azure, crie um laboratório de DevTest Labs ou utilize um existente.
Registe-se ou inicie sessão na sua organização dos Serviços de DevOps do Azure e crie um projeto ou utilize um projeto existente.
Instale a extensão Azure DevTest Labs Tasks a partir do Visual Studio Marketplace:
- Vá para Azure DevTest Labs Tasks.
- Selecione Obter gratuitamente.
- Selecione a sua organização dos Serviços de DevOps do Azure na lista pendente e, em seguida, selecione Instalar.
Criar um modelo para criar uma VM de laboratório
Primeiro, construa um modelo do Azure Resource Manager (ARM) que cria uma VM de laboratório a pedido.
- No seu laboratório no portal do Azure, selecione Adicionar na barra de menus superior.
- No ecrã Escolher uma base , selecione uma imagem base do Windows para a VM.
- No ecrã Criar recurso de laboratório , em Artefactos, selecione Adicionar ou Remover Artefactos.
- No ecrã Adicionar artefactos , procure winrm e, em seguida, selecione a seta junto a Configurar WinRM.
- No painel Adicionar artefacto , introduza um nome de domínio completamente qualificado (FQDN) para a VM, como
contosolab00000000000000.westus3.cloudapp.azure.com
. Selecione OK e, em seguida, selecione OK novamente. - Selecione o separador Definições Avançadas e, para Endereço IP, selecione Público.
Nota
Se utilizar o artefacto WinRM com um endereço IP partilhado, tem de adicionar uma regra de tradução de endereços de rede (NAT) para mapear uma porta externa para a porta WinRM. Não precisa da regra NAT se criar a VM com um endereço IP público. Para estas instruções, crie a VM com um endereço IP público.
- Selecione Ver modelo do ARM.
- Copie o código do modelo e guarde-o como um ficheiro denominado CreateVMTemplate.json no seu ramo de controlo de origem local.
- Verifique o modelo no sistema de controlo de origem do projeto.
Para obter mais informações e detalhes, veja Utilizar um modelo de Resource Manager.
Criar um script para obter propriedades da VM
Em seguida, crie um script para recolher os valores que os passos de tarefa, como a Cópia de Ficheiros do Azure e o PowerShell em Máquinas de Destino , utilizam para implementar aplicações em VMs. Normalmente, utilizaria estas tarefas para implementar as suas próprias aplicações nas suas VMs do Azure. As tarefas requerem valores como o nome do grupo de recursos da VM, o endereço IP e o FQDN.
Nota
Recomendamos que utilize o módulo do Azure Az PowerShell para interagir com o Azure. Veja Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.
Guarde o seguinte script com um nome como GetLabVMParams.ps1e dê entrada no sistema de controlo de origem do projeto.
Param( [string] $labVmId)
$labVmComputeId = (Get-AzResource -Id $labVmId).Properties.ComputeId
# Get lab VM resource group name
$labVmRgName = (Get-AzResource -Id $labVmComputeId).ResourceGroupName
# Get the lab VM Name
$labVmName = (Get-AzResource -Id $labVmId).Name
# Get lab VM public IP address
$labVMIpAddress = (Get-AzPublicIpAddress -ResourceGroupName $labVmRgName -Name $labVmName).IpAddress
# Get lab VM FQDN
$labVMFqdn = (Get-AzPublicIpAddress -ResourceGroupName $labVmRgName -Name $labVmName).DnsSettings.Fqdn
# Set a variable labVmRgName to store the lab VM resource group name
Write-Host "##vso[task.setvariable variable=labVmRgName;]$labVmRgName"
# Set a variable labVMIpAddress to store the lab VM Ip address
Write-Host "##vso[task.setvariable variable=labVMIpAddress;]$labVMIpAddress"
# Set a variable labVMFqdn to store the lab VM FQDN name
Write-Host "##vso[task.setvariable variable=labVMFqdn;]$labVMFqdn"
Criar um pipeline de versão no Azure Pipelines
Em seguida, crie o pipeline de versão nos Pipelines do Azure. As tarefas de pipeline utilizam os valores que atribuiu à VM quando criou o modelo do ARM.
- Na página de projeto dos Serviços de DevOps do Azure, selecione Versões> dePipelines no painel de navegação esquerdo.
- Selecione Novo pipeline.
- No painel Selecionar um modelo , selecione Esvaziar tarefa.
- Feche o painel Fase .
- Na página Novo pipeline de versão , selecione o separador Variáveis .
- Selecione Adicionar e introduza os seguintes pares Nome e Valor , selecionando Adicionar depois de adicionar cada um deles.
- vmName: o nome da VM que atribuiu no modelo do ARM.
- userName: o nome de utilizador a aceder à VM.
- palavra-passe: palavra-passe para o nome de utilizador. Selecione o ícone de bloqueio para ocultar e proteger a palavra-passe.
Adicionar um artefacto
- Na nova página do pipeline de versão, no separador Pipeline , selecione Adicionar um artefacto.
- No painel Adicionar um artefacto, selecione Repositório do Azure.
- Na lista Projeto , selecione o projeto DevOps.
- Na lista Origem (repositório), selecione o repositório de origem.
- Na lista Ramo predefinido , selecione o ramo a dar saída.
- Selecione Adicionar.
Criar uma VM do DevTest Labs
O passo seguinte cria uma VM de imagem dourada a utilizar para implementações futuras. Este passo utiliza a tarefa Criar VM Azure DevTest Labs.
Na nova página do pipeline de versão, no separador Pipeline , selecione o texto hiperligado na Fase 1.
No painel esquerdo, selecione o sinal de + adição junto a Tarefa do agente.
Em Adicionar tarefas no painel direito, procure e selecione Azure DevTest Labs Criar VM e selecione Adicionar.
No painel esquerdo, selecione a tarefa Criar Azure DevTest Labs VM.
No painel do lado direito, preencha o formulário da seguinte forma:
Subscrição do Azure RM: selecione a sua ligação de serviço ou subscrição na lista pendente e selecione Autorizar , se necessário.
Nota
Para obter informações sobre como criar uma ligação de permissões mais restrita à sua subscrição do Azure, veja Ponto final de serviço do Azure Resource Manager.
Laboratório: selecione o nome do laboratório de DevTest Labs.
Nome da Máquina Virtual: a variável que especificou para o nome da máquina virtual: $vmName.
Modelo: navegue até e selecione o ficheiro de modelo que deu entrada no repositório do projeto.
Ficheiro de Parâmetros: se tiver verificado um ficheiro de parâmetros no repositório, navegue até e selecione-o.
Substituições de Parâmetros: Introduza
-newVMName '$(vmName)' -userName '$(userName)' -password '$(password)'
.No menu pendente Variáveis de Saída e, em Nome de referência, introduza a variável para o ID de VM de laboratório criado. Vamos introduzir vm para Nome de referência para simplificar. labVmId será um atributo desta variável e será referido mais tarde como $vm.labVmId. Se utilizar outro nome, lembre-se de utilizá-lo em conformidade nas tarefas subsequentes.
O ID da VM do laboratório estará no seguinte formulário:
/subscriptions/{subscription Id}/resourceGroups/{resource group Name}/providers/Microsoft.DevTestLab/labs/{lab name}/virtualMachines/{vmName}
.
Recolher os detalhes da VM do DevTest Labs
Em seguida, o pipeline executa o script que criou para recolher os detalhes da VM do DevTest Labs.
- No separador Tarefas do pipeline de versão, selecione o sinal de + adição junto a Tarefa do agente.
- Em Adicionar tarefas no painel direito, procure e selecione Azure PowerShell e selecione Adicionar.
- No painel esquerdo, selecione o script de Azure PowerShell: tarefa FilePath.
- No painel do lado direito, preencha o formulário da seguinte forma:
- Subscrição do Azure: selecione a sua ligação ou subscrição de serviço.
- Tipo de Script: selecione Caminho do Ficheiro de Script.
- Caminho do Script: navegue até e selecione o script do PowerShell que deu entrada no repositório de código fonte. Pode utilizar propriedades incorporadas para simplificar o caminho, por exemplo:
$(System.DefaultWorkingDirectory/Scripts/GetLabVMParams.ps1
. - Argumentos de Script: introduza o valor como -labVmId $(vm.labVmId).
O script recolhe os valores necessários e armazena-os em variáveis de ambiente no pipeline de versão, para que possa consultar os mesmos em passos posteriores.
Criar uma imagem de VM a partir da VM do DevTest Labs
A tarefa seguinte cria uma imagem da VM recentemente implementada no laboratório. Pode utilizar a imagem para criar cópias da VM a pedido para realizar tarefas de programador ou executar testes.
- No separador Tarefas do pipeline de versão, selecione o sinal + de adição junto a Tarefa do agente.
- Em Adicionar tarefas, selecione Azure DevTest Labs Criar Imagem Personalizada e selecione Adicionar.
- No painel esquerdo, selecione a tarefa Azure DevTest Labs Criar Imagem Personalizada.
- No painel do lado direito, preencha o formulário da seguinte forma:
- Subscrição do Azure RM: selecione a sua ligação de serviço ou subscrição.
- Laboratório: selecione o seu laboratório.
- Nome da Imagem Personalizada: introduza um nome para a imagem personalizada.
- Descrição: introduza uma descrição opcional para facilitar a seleção da imagem correta.
- VM do Laboratório de Origem: o labVmId de origem. Introduza o valor como $(vm.labVmId).
- Variáveis de Saída: pode editar o nome da variável de ID de Imagem Personalizada predefinida, se necessário.
Implementar a aplicação na VM do DevTest Labs (opcional)
Pode adicionar tarefas para implementar a sua aplicação na nova VM de DevTest Labs. Se quiser experimentar apenas a criação de uma VM do DevTest Labs e uma imagem personalizada, sem implementar uma aplicação, pode ignorar este passo.
As tarefas que normalmente utiliza para implementar aplicações são a Cópia de Ficheiros do Azure e o PowerShell nos Computadores de Destino. Pode encontrar as informações da VM de que precisa para os parâmetros de tarefa em três variáveis de configuração denominadas labVmRgName, labVMIpAddress e labVMFqdn no pipeline de versão.
Elimine a VM
A tarefa final é eliminar a VM que implementou no laboratório. Normalmente, eliminaria a VM depois de realizar as tarefas de programador ou executar os testes de que necessita na VM implementada.
- No separador Tarefas do pipeline de versão, selecione o sinal + de adição junto a Tarefa do agente.
- Em Adicionar tarefas, selecione Azure DevTest Labs Eliminar VM e selecione Adicionar.
- Configure a tarefa da seguinte forma:
- Subscrição do Azure RM: selecione a sua ligação de serviço ou subscrição.
- Laboratório: selecione o seu laboratório.
- Máquina Virtual: introduza o valor como $(vm.labVmId).
- Variáveis de Saída: em Nome da referência, se tiver alterado o nome predefinido da variável labVmId , introduza-o aqui. O valor predefinido é $(labVmId).
Guardar o pipeline de versão
Para guardar o novo pipeline de versão:
- Selecione Novo pipeline de versão na parte superior da página do pipeline de versão e introduza um novo nome para o pipeline.
- Selecione Guardar no canto superior direito.
Criar e executar uma versão
Para criar e executar uma versão com o novo pipeline:
- Na página do pipeline de versão, selecione Criar versão no canto superior direito.
- Em Artefactos, selecione a compilação mais recente e, em seguida, selecione Criar.
Em cada fase de lançamento, pode atualizar a vista do laboratório no portal do Azure para ver a criação da VM, a criação de imagens e a eliminação da VM.
Pode utilizar a imagem personalizada para criar VMs sempre que precisar delas.
Passos seguintes
- Saiba como Criar ambientes multi-VM com modelos arm.
- Explore modelos arm de início mais rápido para automatização de DevTest Labs a partir do repositório do GitHub de DevTest Labs público.
- Se necessário, veja Resolução de problemas dos Pipelines do Azure.
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários