Delen via


Opdrachtregels gebruiken om virtuele Machines van DevTest Labs te starten en te stoppen

In dit artikel wordt beschreven hoe u Azure DevTest Labs virtuele machines (VM's) start of stopt met behulp van Azure PowerShell- of Azure CLI-opdrachtregels en -scripts.

U kunt DevTest Labs-VM's starten, stoppen of opnieuw starten met behulp van de Azure Portal. U kunt de portal ook gebruiken om schema's en beleidsregels voor automatisch opstarten en automatisch afsluiten voor lab-VM's te configureren.

Als u een script wilt uitvoeren of het starten of stoppen voor lab-VM's wilt automatiseren, gebruikt u PowerShell- of Azure CLI-opdrachten. U kunt bijvoorbeeld start- of stopopdrachten gebruiken om het volgende te doen:

  • Test een toepassing met drie lagen, waarbij de lagen in een volgorde moeten beginnen.
  • Schakel VM's uit om kosten te besparen wanneer ze voldoen aan aangepaste criteria.
  • Begin wanneer een werkstroom voor continue integratie en continue levering (CI/CD) wordt gestart en stop wanneer deze is voltooid. Zie Een installatiekopieënfactory uitvoeren vanuit Azure DevOps voor een voorbeeld van deze werkstroom.

Vereisten

  • Een lab-VM in DevTest Labs.
  • Voor Azure PowerShell is de Az PowerShell-module geïnstalleerd op uw werkstation. Zorg ervoor dat u de nieuwste versie hebt. Voer indien nodig uit Update-Module -Name Az om de module bij te werken.
  • Voor Azure CLI is Azure CLI geïnstalleerd op uw werkstation.

Azure PowerShell script

Met het volgende PowerShell-script wordt een VM in een lab gestart of gestopt met behulp van Invoke-AzResourceAction. De ResourceId parameter is de volledig gekwalificeerde id voor de lab-VM die u wilt starten of stoppen. De Action parameter bepaalt of de VM moet worden gestart of gestopt, afhankelijk van welke actie u nodig hebt.

  1. Gebruik vanaf uw werkstation de cmdlet PowerShell Connect-AzAccount om u aan te melden bij uw Azure-account. Als u meerdere Azure-abonnementen hebt, verwijder dan de opmerking bij de Set-AzContext regel en vul de <Subscription ID> in die u wilt gebruiken.

    # Sign in to your Azure subscription
    $sub = Get-AzSubscription -ErrorAction SilentlyContinue
    if(-not($sub))
    {
        Connect-AzAccount
    }
    
    # Set-AzContext -SubscriptionId "<Subscription ID>"
    
  2. Geef waarden op voor en <lab name><VM name>en voer in welke actie u wilt gebruiken voor <Start or Stop>.

    $devTestLabName = "<lab name>"
    $vMToStart = "<VM name>"
    
    # The action on the virtual machine (Start or Stop)
    $vmAction = "<Start or Stop>"
    
  3. Start of stop de VM op basis van de waarde die u hebt doorgegeven aan $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"
    }
    

Azure CLI-script

Het volgende script biedt Azure CLI-opdrachten voor het starten of stoppen van een lab-VM. De variabelen in dit script zijn voor een Windows-omgeving, zoals een opdrachtprompt. Bash of andere omgevingen hebben kleine variaties.

  1. Geef de juiste waarden op voor <Subscription ID>, <lab name>, <VM name>en de <Start or Stop> actie die moet worden uitgevoerd.

    set SUBSCRIPTIONID=<Subscription ID>
    set DEVTESTLABNAME=<lab name>
    set VMNAME=<VM name>
    set ACTION=<Start or Stop>
    
  2. Meld u aan bij uw Azure-account. Als u meerdere Azure-abonnementen hebt, moet u de az account set regel verwijderen om de abonnements-id te gebruiken die u hebt opgegeven.

    az login
    
    REM az account set --subscription %SUBSCRIPTIONID%
    
  3. Haal de naam op van de resourcegroep die het lab bevat.

    az resource list --resource-type "Microsoft.DevTestLab/labs" --name %DEVTESTLABNAME% --query "[0].resourceGroup"
    
  4. Vervang door <resourceGroup> de waarde die u in de vorige stap hebt gekregen.

    set RESOURCEGROUP=<resourceGroup>
    
  5. Voer de opdrachtregel uit om de VM te starten of te stoppen, op basis van de waarde die u hebt doorgegeven aan ACTION.

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

Volgende stappen