Uso de líneas de comandos para iniciar y detener las máquinas virtuales de DevTest Labs
En este artículo se muestra cómo iniciar o detener las máquinas virtuales (VM) de Azure DevTest Labs mediante líneas de comandos y scripts de PowerShell o la CLI de Azure.
Puede iniciar, detener o reiniciar las máquinas virtuales de DevTest Labs mediante Azure Portal. También puede usar el portal para configurar programaciones y directivas de inicio automático y apagado automático para las máquinas virtuales del laboratorio.
Si desea incluir en un script o automatizar el inicio o la detención de las máquinas virtuales del laboratorio, use comandos de PowerShell o la CLI de Azure. Por ejemplo, puede usar los comandos de inicio o detención para:
- Probar una aplicación de tres niveles, donde los niveles deben iniciarse en una secuencia.
- Desactivar las máquinas virtuales para ahorrar costos cuando cumplan criterios personalizados.
- Iniciar cuando comience un flujo de trabajo de integración continua y entrega continua (CI/CD) y detener cuando finalice. Para ver un ejemplo de este flujo de trabajo, consulte Ejecución de una fábrica de imágenes desde Azure DevOps.
Requisitos previos
- A lab VM in DevTest Labs.
- Para Azure PowerShell, el Módulo Az PowerShell instalado en la estación de trabajo. Asegúrese de tener instalada la versión más reciente. Si es necesario, ejecute
Update-Module -Name Az
para actualizar el módulo. - Para la CLI de Azure, la CLI de Azure instalada en la estación de trabajo.
Script de Azure PowerShell
El siguiente script de PowerShell inicia o detiene una máquina virtual de un laboratorio mediante Invoke-AzResourceAction. El parámetro ResourceId
es el identificador completo de la máquina virtual del laboratorio que desea iniciar o detener. El parámetro Action
determina si se debe iniciar o detener la máquina virtual, en función de la acción que necesite.
En la estación de trabajo, use el cmdlet Connect-AzAccount de PowerShell para iniciar sesión en su cuenta de Azure. Si tiene varias suscripciones de Azure, quite la marca de comentario de la línea
Set-AzContext
y rellene el identificador<Subscription ID>
que desea usar.# Sign in to your Azure subscription $sub = Get-AzSubscription -ErrorAction SilentlyContinue if(-not($sub)) { Connect-AzAccount } # Set-AzContext -SubscriptionId "<Subscription ID>"
Proporcione valores para
<lab name>
y<VM name>
, y escriba qué acción desea para<Start or Stop>
.$devTestLabName = "<lab name>" $vMToStart = "<VM name>" # The action on the virtual machine (Start or Stop) $vmAction = "<Start or Stop>"
Inicie o detenga la máquina virtual en función del valor que haya 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" }
Script de la CLI de Azure
El siguiente script proporciona comandos de la CLI de Azure para iniciar o detener una máquina virtual del laboratorio. Las variables de este script son para un entorno de Windows, como un símbolo del sistema. Bash u otros entornos tienen ligeras variaciones.
Proporcione los valores adecuados para
<Subscription ID>
,<lab name>
,<VM name>
y la acción<Start or Stop>
que se va a realizar.set SUBSCRIPTIONID=<Subscription ID> set DEVTESTLABNAME=<lab name> set VMNAME=<VM name> set ACTION=<Start or Stop>
Inicie sesión en la cuenta de Azure. Si tiene varias suscripciones de Azure, quite la marca de comentario de la línea
az account set
para usar el identificador de suscripción que proporcionó.az login REM az account set --subscription %SUBSCRIPTIONID%
Obtenga el nombre del grupo de recursos que contiene el laboratorio.
az resource list --resource-type "Microsoft.DevTestLab/labs" --name %DEVTESTLABNAME% --query "[0].resourceGroup"
Reemplace
<resourceGroup>
por el valor que obtuvo en el paso anterior.set RESOURCEGROUP=<resourceGroup>
Ejecute la línea de comandos para iniciar o detener la máquina virtual, en función del valor que haya pasado a
ACTION
.az lab vm %ACTION% --lab-name %DEVTESTLABNAME% --name %VMNAME% --resource-group %RESOURCEGROUP%