Compartilhar via


Usar linhas de comando para iniciar e parar máquinas virtuais do DevTest Labs

Este artigo mostra como iniciar ou parar as VMs (máquinas virtuais) do Azure DevTest Labs usando as linhas de comando e scripts do Azure PowerShell ou da CLI do Azure.

Você pode iniciar, parar ou reiniciar as VMs do DevTest Labs usando o portal do Azure. Você também pode usar o portal para configurar políticas e agendas de inicialização automática e desligamento automático de VMs de laboratório.

Quando você quiser gerar script ou automatizar o início ou a parada para VMs de laboratório, use os comandos do PowerShell ou da CLI do Azure. Por exemplo, você pode usar os comandos iniciar ou parar para:

  • Testar um aplicativo de três camadas, no qual as camadas precisam começar em uma sequência.
  • Desligar as VMs para economizar quando atenderem a critérios personalizados.
  • Iniciar quando um fluxo de trabalho de CI/CD (integração contínua e entrega contínua) for iniciado e parar quando terminar. Para ver um exemplo desse fluxo de trabalho, consulte Executar uma fábrica de imagem do Azure DevOps.

Pré-requisitos

Script do PowerShell do Azure

O script do PowerShell a seguir inicia ou interrompe uma VM em um laboratório usando Invoke-AzResourceAction. O parâmetro ResourceId é a ID totalmente qualificada para a VM de laboratório que você deseja iniciar ou parar. O parâmetro Action determina se a VM deve ser iniciada ou interrompida, dependendo de qual ação você precisa.

  1. Na estação de trabalho, use o cmdlet Connect-AzAccount do PowerShell para entrar na conta do Azure. Se você tiver várias assinaturas do Azure, remova a marca de comentário da linha Set-AzContext e preencha o <Subscription ID> que deseja usar.

    # Sign in to your Azure subscription
    $sub = Get-AzSubscription -ErrorAction SilentlyContinue
    if(-not($sub))
    {
        Connect-AzAccount
    }
    
    # Set-AzContext -SubscriptionId "<Subscription ID>"
    
  2. Forneça os valores de <lab name> e <VM name> e insira qual ação você deseja para <Start or Stop>.

    $devTestLabName = "<lab name>"
    $vMToStart = "<VM name>"
    
    # The action on the virtual machine (Start or Stop)
    $vmAction = "<Start or Stop>"
    
  3. Inicie ou interrompa a VM com base no valor passado para $vmAction.

    # Get the lab information
    $devTestLab = Get-AzResource -ResourceType 'Microsoft.DevTestLab/labs' -ResourceName $devTestLabName
    
    # Start or stop the VM and return a succeeded or failed status
    $returnStatus = Invoke-AzResourceAction `
                        -ResourceId "$($devTestLab.ResourceId)/virtualmachines/$vMToStart" `
                        -Action $vmAction `
                        -Force
    
    if ($returnStatus.Status -eq 'Succeeded') {
        Write-Output "##[section] Successfully updated DTL machine: $vMToStart, Action: $vmAction"
    }
    else {
        Write-Error "##[error] Failed to update DTL machine: $vMToStart, Action: $vmAction"
    }
    

Script da CLI do Azure

O script a seguir fornece os comandos da CLI do Azure para iniciar ou parar uma VM de laboratório. As variáveis nesse script são para um ambiente do Windows, como um prompt de comando. Bash ou outros ambientes têm pequenas variações.

  1. Forneça os valores apropriados da ação <Subscription ID>, <lab name>, <VM name> e <Start or Stop> a ser tomada.

    set SUBSCRIPTIONID=<Subscription ID>
    set DEVTESTLABNAME=<lab name>
    set VMNAME=<VM name>
    set ACTION=<Start or Stop>
    
  2. Entre em sua conta do Azure. Se você tiver várias assinaturas do Azure, remova a marca de comentário da linha az account set para usar a ID de assinatura fornecida.

    az login
    
    REM az account set --subscription %SUBSCRIPTIONID%
    
  3. Obtenha o nome do grupo de recursos que contém o laboratório.

    az resource list --resource-type "Microsoft.DevTestLab/labs" --name %DEVTESTLABNAME% --query "[0].resourceGroup"
    
  4. Substitua <resourceGroup> pelo valor obtido na etapa anterior.

    set RESOURCEGROUP=<resourceGroup>
    
  5. Execute a linha de comando para iniciar ou interromper a VM com base no valor passado para ACTION.

    az lab vm %ACTION% --lab-name %DEVTESTLABNAME% --name %VMNAME% --resource-group %RESOURCEGROUP%
    

Próximas etapas