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

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.

  1. 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>"
    
  2. 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>"
    
  3. 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.

  1. 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>
    
  2. 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%
    
  3. Ottenere il nome del gruppo di risorse che contiene il lab.

    az resource list --resource-type "Microsoft.DevTestLab/labs" --name %DEVTESTLABNAME% --query "[0].resourceGroup"
    
  4. Sostituire <resourceGroup> con il valore ottenuto dal passaggio precedente.

    set RESOURCEGROUP=<resourceGroup>
    
  5. 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%
    

Passaggi successivi