Udostępnij za pośrednictwem


Uruchamianie i zatrzymywanie maszyn wirtualnych usługi DevTest Labs przy użyciu wierszy polecenia

W tym artykule pokazano, jak uruchomić lub zatrzymać Azure DevTest Labs maszyn wirtualnych przy użyciu Azure PowerShell lub wiersza polecenia interfejsu wiersza polecenia platformy Azure i skryptów.

Maszyny wirtualne usługi DevTest Labs można uruchamiać, zatrzymywać lub uruchamiać ponownie przy użyciu Azure Portal. Za pomocą portalu można również skonfigurować automatyczne uruchamianie i automatyczne harmonogramy zamykania oraz zasady dla maszyn wirtualnych laboratorium.

Jeśli chcesz utworzyć skrypt lub zautomatyzować uruchamianie lub zatrzymywanie maszyn wirtualnych laboratorium, użyj poleceń programu PowerShell lub interfejsu wiersza polecenia platformy Azure. Można na przykład użyć poleceń uruchamiania lub zatrzymywania, aby:

  • Przetestuj aplikację trójwarstwową, w której warstwy muszą być uruchamiane w sekwencji.
  • Wyłącz maszyny wirtualne, aby zaoszczędzić koszty, gdy spełniają kryteria niestandardowe.
  • Rozpocznij od rozpoczęcia przepływu pracy ciągłej integracji i ciągłego dostarczania (CI/CD) i zatrzymania po zakończeniu. Aby zapoznać się z przykładem tego przepływu pracy, zobacz Run an image factory from Azure DevOps (Uruchamianie fabryki obrazów z usługi Azure DevOps).

Wymagania wstępne

skrypt Azure PowerShell

Poniższy skrypt programu PowerShell uruchamia lub zatrzymuje maszynę wirtualną w laboratorium przy użyciu polecenia Invoke-AzResourceAction. Parametr ResourceId jest w pełni kwalifikowanym identyfikatorem maszyny wirtualnej laboratorium, którą chcesz uruchomić lub zatrzymać. Parametr Action określa, czy należy uruchomić lub zatrzymać maszynę wirtualną, w zależności od wymaganej akcji.

  1. Na stacji roboczej użyj polecenia cmdlet PowerShell Connect-AzAccount , aby zalogować się do konta platformy Azure. Jeśli masz wiele subskrypcji platformy Azure, usuń komentarz z Set-AzContext wiersza i wypełnij <Subscription ID> pole, którego chcesz użyć.

    # Sign in to your Azure subscription
    $sub = Get-AzSubscription -ErrorAction SilentlyContinue
    if(-not($sub))
    {
        Connect-AzAccount
    }
    
    # Set-AzContext -SubscriptionId "<Subscription ID>"
    
  2. Podaj wartości dla elementów <lab name> i <VM name>i wprowadź odpowiednią akcję dla elementu <Start or Stop>.

    $devTestLabName = "<lab name>"
    $vMToStart = "<VM name>"
    
    # The action on the virtual machine (Start or Stop)
    $vmAction = "<Start or Stop>"
    
  3. Uruchom lub zatrzymaj maszynę wirtualną na podstawie wartości przekazanej do .$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"
    }
    

Skrypt interfejsu wiersza polecenia platformy Azure

Poniższy skrypt udostępnia polecenia interfejsu wiersza polecenia platformy Azure do uruchamiania lub zatrzymywania maszyny wirtualnej laboratorium. Zmienne w tym skrypcie dotyczą środowiska systemu Windows, takiego jak wiersz polecenia. Powłoka Bash lub inne środowiska mają niewielkie różnice.

  1. Podaj odpowiednie wartości dla <Subscription ID>, <lab name>, <VM name>i <Start or Stop> akcji do wykonania.

    set SUBSCRIPTIONID=<Subscription ID>
    set DEVTESTLABNAME=<lab name>
    set VMNAME=<VM name>
    set ACTION=<Start or Stop>
    
  2. Zaloguj się do swojego konta platformy Azure. Jeśli masz wiele subskrypcji platformy Azure, usuń komentarz z wiersza, az account set aby użyć podanego identyfikatora subskrypcji.

    az login
    
    REM az account set --subscription %SUBSCRIPTIONID%
    
  3. Pobierz nazwę grupy zasobów zawierającej laboratorium.

    az resource list --resource-type "Microsoft.DevTestLab/labs" --name %DEVTESTLABNAME% --query "[0].resourceGroup"
    
  4. Zastąp <resourceGroup> ciąg wartością uzyskaną w poprzednim kroku.

    set RESOURCEGROUP=<resourceGroup>
    
  5. Uruchom wiersz polecenia, aby uruchomić lub zatrzymać maszynę wirtualną na podstawie wartości przekazanej do .ACTION

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

Następne kroki