Compartir a través de


Uso de comandos para iniciar y detener máquinas virtuales de DevTest Labs

En este artículo se muestra cómo puede usar los comandos de PowerShell o la CLI de Azure para generar scripts o automatizar el inicio o la detención de máquinas virtuales de Azure DevTest Labs. Por ejemplo, puede usar comandos start o stop para:

  • Pruebe una aplicación de tres niveles donde los niveles deben iniciarse en una secuencia.
  • Desactive las máquinas virtuales para ahorrar costos cuando cumplan los criterios personalizados.
  • Inicie y detenga una máquina virtual cuando comience y finalice un flujo de trabajo de integración continua y entrega continua (CI/CD).

Nota:

También puede iniciar, detener o reiniciar máquinas virtuales de DevTest Labs mediante Azure Portal. Los administradores de laboratorio pueden usar el portal para configurar programaciones y directivas de apagado automático y de inicio automático para máquinas virtuales de laboratorio.

Prerrequisitos

Iniciar o detener una máquina virtual

El siguiente script de PowerShell inicia o detiene una máquina virtual en un laboratorio mediante el cmdlet Invoke-AzResourceAction de PowerShell. El ResourceId parámetro es el identificador completo de la máquina virtual de laboratorio que desea iniciar o detener. El Action parámetro determina si se debe iniciar o detener la máquina virtual, en función de la acción que necesite.

  1. Si usa Cloud Shell, asegúrese de que está seleccionado el entorno de PowerShell .

  2. Use el cmdlet Connect-AzAccount de PowerShell para iniciar sesión en su cuenta de Azure. Si tiene varias suscripciones de Azure, descomente Set-AzContext y especifique el <SubscriptionId> que desea usar.

    $sub = Get-AzSubscription -ErrorAction SilentlyContinue
    if(-not($sub))
    {
        Connect-AzAccount
    }
    
    # Set-AzContext -SubscriptionId "<Subscription ID>"
    
  3. Establezca variables proporcionando sus propios valores para <lab name>, <VM name>, y decida si Start o Stop la máquina virtual.

    $devTestLabName = "<lab name>"
    $vMToStart = "<VM name>"
    $vmAction = "<Start or Stop>"
    
  4. Inicie o detenga la máquina virtual, en función del valor que ha pasado a $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"
    }