Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Você pode usar a extensão Azure DevTest Labs Tasks para integrar o Azure DevTest Labs aos pipelines de CI/CD (integração contínua e entrega contínua) do Azure Pipelines. A extensão instala várias tarefas no Azure Pipelines, incluindo:
- Criar uma VM (máquina virtual)
- Criar uma imagem personalizada de uma VM
- Excluir uma VM
Essas tarefas facilitam, por exemplo, o rápido processo de implantar uma VM de imagem dourada, executar um teste específico e então excluir a VM.
Este artigo mostra como usar Azure DevTest Labs Tasks para criar e implantar uma VM, criar uma imagem personalizada e depois excluir a VM, tudo em um pipeline de lançamento. Você normalmente executaria essas tarefas separadamente nos seus próprios pipelines de construção, teste e implantação.
Introdução a Azure DevTest Labs
Você é novo no Azure? Crie uma conta gratuita do Azure.
Já está no Azure? Crie seu primeiro laboratório e comece a usar o Azure DevTest Labs em questão de minutos.
Pré-requisitos
No portal do Azure, crie um laboratório do DevTest Labs ou use um existente.
Registre-se ou entre na sua organização do Azure DevOps Services e crie um projeto ou use um projeto existente.
Instale a extensão Azure DevTest Labs Tasks, disponível no Visual Studio Marketplace:
- Acesse Tarefas do Azure DevTest Labs.
- Selecione Obter gratuitamente.
- Selecione sua organização do Azure DevOps Services na lista suspensa e clique em Instalar.
Criar um modelo para criar uma VM de laboratório
Primeiro, construa um modelo do ARM (Azure Resource Manager) que crie uma VM de laboratório sob demanda.
- No laboratório na portal do Azure, selecione Adicionar na barra de menus superior.
- Na tela Escolher uma base, selecione uma imagem base do Windows para a VM.
- Na tela Criar recurso do laboratório, em Artefatos, selecione Adicionar ou Remover Artefatos.
- Na tela Adicionar artefatos, procure WinRM e selecione a seta ao lado de Configurar WinRM.
- No painel Adicionar artefato, insira um FQDN (nome de domínio totalmente qualificado) para a VM, como
contosolab00000000000000.westus3.cloudapp.azure.com
. Selecione OK e, em seguida, OK novamente. - Selecione a guia Configurações Avançadas e, em Endereço IP, selecione Público.
Observação
Se você usar o artefato do WinRM com um endereço IP compartilhado, adicione uma regra NAT (conversão de endereços de rede) para mapear uma porta externa à porta do WinRM. Você não precisará da regra NAT se criar a VM com um endereço IP público. Neste guia, crie a máquina virtual (VM) com um endereço IP público.
- Selecione Exibir modelo do ARM.
- Copie o código do modelo e salve-o como um arquivo chamado CreateVMTemplate.json na sua ramificação local de controle do código-fonte.
- Registre o modelo no sistema de controle de código-fonte do seu projeto.
Criar um script para obter as propriedades da VM
Depois, crie um script para coletar os valores que as etapas da tarefa, como a Cópia de Arquivo do Azure e o PowerShell em Computadores de Destino, usam para implantar aplicativos em VMS. Você normalmente usaria essas tarefas para implantar seus aplicativos nas VMs do Azure. As tarefas exigem valores como o nome do grupo de recursos, o endereço IP e o FQDN da VM.
Observação
Recomendamos que você use o módulo Az PowerShell do Azure para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.
Salve o script com um nome como GetLabVMParams.ps1 e registre-o no sistema de controle de versão do seu 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 lançamento no Azure Pipelines
Depois, crie o pipeline de lançamento no Azure Pipelines. As tarefas de pipeline usam os valores que foram atribuídos à VM quando você criou o modelo do ARM.
- Na página do projeto do Azure DevOps Services, selecione Pipelines>Lançamentos no painel de navegação à esquerda.
- Selecione Novo fluxo de trabalho.
- No painel Selecionar um modelo, escolha Trabalho vazio.
- Feche o painel Etapa.
- Na página Novo pipeline de lançamento, selecione a guia Variáveis.
- Selecione Adicionar e insira os seguintes pares de Nome e Valor, selecionando Adicionar depois de adicionar cada um.
- vmName: o nome da VM que você atribuiu no modelo do ARM.
- userName: o nome de usuário para acessar a VM.
- password: a senha para o nome de usuário. Use o ícone de cadeado para ocultar e proteger a senha.
Adicionar um artefato
- Na página do novo pipeline de liberação, na guia Pipeline, selecione Adicionar um artefato.
- No painel Adicionar um artefato, selecione Azure Repo.
- Na lista Projeto, selecione seu projeto do DevOps.
- Na lista Origem (repositório), selecione o repositório de origem.
- Na lista Branch padrão, selecione o branch para fazer o checkout.
- Selecione Adicionar.
Criar uma VM do DevTest Labs
A próxima etapa cria uma VM de imagem dourada a ser usada para implantações futuras. Esta etapa usa a tarefa Criar VM do Azure DevTest Labs.
Na página do novo pipeline de lançamento, na guia Pipeline, selecione o texto com hiperlink em Estágio 1.
No painel à esquerda, selecione o sinal de adição + ao lado de Trabalho do agente.
Em Adicionar tarefas no painel direito, procure e selecione Criar VM do Azure DevTest Labs e escolha Adicionar.
Selecione Criar VM do Azure DevTest Labs no painel à esquerda.
No painel direito, preencha o formulário da seguinte maneira:
Assinatura do Azure RM: selecione sua conexão de serviço ou assinatura na lista suspensa e selecione Autorizar se necessário.
Observação
Para obter informações sobre como criar uma conexão de permissões mais restritas para a sua assinatura do Azure, confira Ponto de extremidade de serviço do Azure Resource Manager.
Laboratório: selecione o nome do laboratório do DevTest Labs.
Nome da Máquina Virtual: a variável especificada para o nome da máquina virtual: $vmName.
Modelo: navegue até o arquivo de modelo que você adicionou ao repositório do seu projeto e selecione-o.
Arquivo de Parâmetros: Caso você tenha inserido um arquivo de parâmetros no seu repositório, procure-o e selecione-o.
Substituições de parâmetro: digite
-newVMName '$(vmName)' -userName '$(userName)' -password '$(password)'
.Expanda Variáveis de Saída e, em Nome de referência, insira a variável para o ID da VM do laboratório criado. Vamos inserir vm para Nome da referência para simplificar. labVmId será um atributo dessa variável e será referido posteriormente como $vm.labVmId. Se você usar qualquer outro nome, lembre-se de usá-lo de acordo nas tarefas subsequentes.
Lab VM ID estará no formulário a seguir:
/subscriptions/{subscription Id}/resourceGroups/{resource group Name}/providers/Microsoft.DevTestLab/labs/{lab name}/virtualMachines/{vmName}
.
Coletar os detalhes da VM do DevTest Labs
Depois, o pipeline executará o script que você criou para coletar os detalhes da VM do DevTest Labs.
- No pipeline de liberação, na guia Tarefas, escolha o sinal de adição + ao lado de Trabalho do agente.
- Em Adicionar tarefas no painel direito, procure e selecione Azure PowerShell e clique em Adicionar.
- No painel à esquerda, selecione a tarefa Script do Azure PowerShell: FilePath.
- No painel direito, preencha o formulário da seguinte maneira:
- Assinatura do Azure: selecione sua conexão de serviço ou assinatura.
- Tipo de script: selecione Caminho do Arquivo de Script.
-
Caminho do Script: Navegue até o script do PowerShell que você fez upload para seu repositório de código-fonte e selecione-o. Você pode usar propriedades internas para simplificar o caminho, por exemplo:
$(System.DefaultWorkingDirectory/Scripts/GetLabVMParams.ps1
. - Argumentos de Script: insira o valor como -labVmId $(vm.labVmId).
O script coleta os valores necessários e armazena-os em variáveis de ambiente no pipeline de lançamento para que você possa referenciá-los facilmente nas próximas etapas.
Criar uma imagem da VM do DevTest Labs
A próxima tarefa cria uma imagem da VM recém-implantada no laboratório. Você pode usar a imagem para criar cópias da VM sob demanda a fim de realizar tarefas de desenvolvedor ou executar testes.
- No pipeline de liberação, na guia Tarefas, escolha o sinal de adição + ao lado de Trabalho do agente.
- Em Adicionar tarefas, selecione Azure DevTest Labs criar imagem personalizada e selecione Adicionar.
- No painel esquerdo, selecione a tarefa Criar Imagem Personalizada do Azure DevTest Labs .
- No painel direito, preencha o formulário da seguinte maneira:
- Assinatura do Azure RM: selecione sua conexão de serviço ou assinatura.
- Laboratório: selecione seu laboratório.
- Nome da Imagem Personalizada: insira um nome para a imagem personalizada.
- Descrição: insira uma descrição opcional para facilitar a seleção da imagem correta.
- VM do laboratório de origem: o labVmId de origem. Insira o valor como $(vm.labVmId).
- Variáveis de Saída: você pode editar o nome da variável de ID de Imagem Personalizada padrão, se necessário.
Implantar o aplicativo na VM do DevTest Labs (opcional)
Você pode adicionar tarefas para implantar o aplicativo na nova VM do DevTest Labs. Se você quiser apenas experimentar a criação de uma VM e de uma imagem personalizada do DevTest Labs, sem implantar um aplicativo, ignore esta etapa.
As tarefas que você geralmente usa para implantar aplicativos são Cópia de Arquivo do Azure e PowerShell em Computadores de Destino. Você pode encontrar as informações da VM necessárias para os parâmetros de tarefa em três variáveis de configuração chamadas labVmRgName, labVMIpAddress e labVMFqdn no pipeline de lançamento.
Excluir a VM
A tarefa final é excluir a VM que você implantou no laboratório. Normalmente, você excluiria a VM depois de realizar as tarefas do desenvolvedor ou executaria os testes necessários na VM implantada.
- No pipeline de liberação, na guia Tarefas, escolha o sinal de adição + ao lado de Trabalho do agente.
- Em Adicionar tarefas, selecione Azure DevTest Labs excluir VM e selecione Adicionar.
- Configure as tarefas da seguinte forma:
- Assinatura do Azure RM: selecione sua conexão de serviço ou assinatura.
- Laboratório: selecione seu laboratório.
- Máquina Virtual: insira o valor como $(vm.labVmId).
- Variáveis de Saída: em Nome de referência, se você alterou o nome padrão da variável labVmId, insira-o aqui. O valor padrão é $(labVmId).
Salvar o pipeline de lançamento
Para salvar a nova linha de lançamento:
- Selecione Nova pipeline de versão na parte superior da página de pipeline de versão e insira um novo nome para o pipeline.
- Selecione Salvar no canto superior direito.
Criar e executar um lançamento
Para criar e executar uma versão usando o novo pipeline:
- Na página do pipeline de lançamento, selecione Criar release no canto superior direito.
- Em Artefatos, selecione o build mais recente e depois Criar.
Em cada fase de lançamento, você pode atualizar a visão geral do laboratório no portal do Azure para ver a criação da VM, a criação da imagem e a exclusão da VM.
Você pode usar a imagem personalizada para criar VMs sempre que precisar delas.
Próximas etapas
- Explore mais modelos do ARM de início rápido para automação do DevTest Labs usando o repositório público do DevTest Labs no GitHub.
- Se necessário, confira Solução de problemas do Azure Pipelines.