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.
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>"
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>"
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.
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>
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%
Haal de naam op van de resourcegroep die het lab bevat.
az resource list --resource-type "Microsoft.DevTestLab/labs" --name %DEVTESTLABNAME% --query "[0].resourceGroup"
Vervang door
<resourceGroup>
de waarde die u in de vorige stap hebt gekregen.set RESOURCEGROUP=<resourceGroup>
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%