Usare le righe di comando per avviare e arrestare le macchine virtuali di DevTest Labs
Questo articolo illustra come avviare o arrestare Azure DevTest Labs macchine virtuali usando Azure PowerShell o le righe di comando e gli script dell'interfaccia della riga di comando di Azure.
È possibile avviare, arrestare o riavviare le macchine virtuali di DevTest Labs usando il portale di Azure. È anche possibile usare il portale per configurare le pianificazioni e i criteri di arresto automatico e di arresto automatico per le macchine virtuali del lab.
Quando si vuole creare script o automatizzare l'avvio o l'arresto per le macchine virtuali del lab, usare PowerShell o i comandi dell'interfaccia della riga di comando di Azure. Ad esempio, è possibile usare i comandi start o stop per:
- Testare un'applicazione a tre livelli, in cui i livelli devono iniziare in una sequenza.
- Disattivare le macchine virtuali per risparmiare i costi quando soddisfano criteri personalizzati.
- Iniziare quando viene avviato un flusso di lavoro di integrazione continua e recapito continuo (CI/CD) e arrestarlo al termine. Per un esempio di questo flusso di lavoro, vedere Eseguire una factory di immagini da Azure DevOps.
Prerequisiti
- Una macchina virtuale lab in DevTest Labs.
- Per Azure PowerShell, il modulo Az PowerShell installato nella workstation. Assicurarsi di avere la versione più recente. Se necessario, eseguire
Update-Module -Name Az
per aggiornare il modulo. - Per l'interfaccia della riga di comando di Azure, l'interfaccia della riga di comando di Azure è installata nella workstation.
Script di Azure PowerShell
Lo script di PowerShell seguente avvia o arresta una macchina virtuale in un lab usando Invoke-AzResourceAction. Il ResourceId
parametro è l'ID completo per la macchina virtuale lab che si vuole avviare o arrestare. Il Action
parametro determina se avviare o arrestare la macchina virtuale, a seconda dell'azione necessaria.
Dalla workstation usare il cmdlet PowerShell Connect-AzAccount per accedere all'account Azure. Se si hanno più sottoscrizioni di Azure, rimuovere il commento dalla
Set-AzContext
riga e compilare l'elemento<Subscription ID>
che si vuole usare.# Sign in to your Azure subscription $sub = Get-AzSubscription -ErrorAction SilentlyContinue if(-not($sub)) { Connect-AzAccount } # Set-AzContext -SubscriptionId "<Subscription ID>"
Specificare i
<lab name>
valori per e<VM name>
e immettere l'azione desiderata per<Start or Stop>
.$devTestLabName = "<lab name>" $vMToStart = "<VM name>" # The action on the virtual machine (Start or Stop) $vmAction = "<Start or Stop>"
Avviare o arrestare la macchina virtuale, in base al valore passato 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 dell'interfaccia della riga di comando di Azure
Lo script seguente fornisce i comandi dell'interfaccia della riga di comando di Azure per avviare o arrestare una macchina virtuale lab. Le variabili in questo script sono per un ambiente Windows, ad esempio un prompt dei comandi. Bash o altri ambienti presentano lievi variazioni.
Specificare i valori appropriati per
<Subscription ID>
,<lab name>
,<VM name>
e l'azione<Start or Stop>
da eseguire.set SUBSCRIPTIONID=<Subscription ID> set DEVTESTLABNAME=<lab name> set VMNAME=<VM name> set ACTION=<Start or Stop>
Accedere all'account Azure. Se si hanno più sottoscrizioni di Azure, rimuovere il commento dalla
az account set
riga per usare l'ID sottoscrizione specificato.az login REM az account set --subscription %SUBSCRIPTIONID%
Ottenere il nome del gruppo di risorse che contiene il lab.
az resource list --resource-type "Microsoft.DevTestLab/labs" --name %DEVTESTLABNAME% --query "[0].resourceGroup"
Sostituire
<resourceGroup>
con il valore ottenuto dal passaggio precedente.set RESOURCEGROUP=<resourceGroup>
Eseguire la riga di comando per avviare o arrestare la macchina virtuale, in base al valore passato a
ACTION
.az lab vm %ACTION% --lab-name %DEVTESTLABNAME% --name %VMNAME% --resource-group %RESOURCEGROUP%