다음을 통해 공유


명령줄을 사용하여 DevTest Labs의 가상 머신 시작 및 중지

이 문서에서는 Azure PowerShell 또는 Azure CLI 명령줄 및 스크립트를 사용하여 Azure DevTest Labs VM(가상 머신)을 시작하거나 중지하는 방법을 보여줍니다.

Azure Portal을 사용하여 DevTest Labs VM을 시작, 중지 또는 다시 시작할 수 있습니다. 포털을 사용하여 랩 VM에 대한 자동 시작자동 종료 일정 및 정책을 구성할 수도 있습니다.

랩 VM에 대한 시작 또는 중지를 스크립트하거나 자동화하려면 PowerShell 또는 Azure CLI 명령을 사용합니다. 예를 들어 시작 또는 중지 명령을 사용하여 다음을 수행할 수 있습니다.

  • 계층이 순서대로 시작되어야 하는 3계층 애플리케이션을 테스트합니다.
  • 사용자 지정 기준을 충족하면 비용을 절약하기 위해 VM을 끕니다.
  • CI/CD(연속 통합 및 지속적인 업데이트) 워크플로가 시작될 때 시작하고, 완료되면 중지합니다. 이 워크플로의 예는 Azure DevOps에서 이미지 팩터리 실행을 참조하세요.

필수 조건

  • DevTest Labs의 랩 VM.
  • Azure PowerShell의 경우 워크스테이션에 설치된 Az PowerShell 모듈입니다. 최신 버전이 있는지 확인합니다. 필요한 경우 Update-Module -Name Az를 실행하여 모듈을 업데이트합니다.
  • Azure CLI의 경우 워크스테이션에 Azure CLI가 설치됩니다.

Azure PowerShell 스크립트

다음 PowerShell 스크립트는 Invoke-AzResourceAction을 사용하여 랩에서 VM을 시작하거나 중지합니다. ResourceId 매개 변수는 시작하거나 중지하려는 랩 VM에 대한 정규화된 ID입니다. Action 매개 변수는 필요한 작업에 따라 VM을 시작하거나 중지할지 여부를 결정합니다.

  1. 워크스테이션에서 PowerShell Connect-AzAccount cmdlet을 사용하여 Azure 계정에 로그인합니다. 여러 Azure 구독이 있는 경우 Set-AzContext 줄의 주석 처리를 제거하고 사용하려는 <Subscription ID>를 채웁니다.

    # Sign in to your Azure subscription
    $sub = Get-AzSubscription -ErrorAction SilentlyContinue
    if(-not($sub))
    {
        Connect-AzAccount
    }
    
    # Set-AzContext -SubscriptionId "<Subscription ID>"
    
  2. <lab name><VM name>에 대한 값을 제공하고 <Start or Stop>에 대해 원하는 작업을 입력합니다.

    $devTestLabName = "<lab name>"
    $vMToStart = "<VM name>"
    
    # The action on the virtual machine (Start or Stop)
    $vmAction = "<Start or Stop>"
    
  3. $vmAction에 전달한 값에 따라 VM을 시작하거나 중지합니다.

    # 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 스크립트

다음 스크립트는 랩 VM을 시작하거나 중지하기 위한 Azure CLI 명령을 제공합니다. 이 스크립트의 변수는 명령 프롬프트와 같은 Windows 환경을 위해 사용됩니다. Bash 또는 기타 환경에는 약간의 변형이 있습니다.

  1. 수행할 <Subscription ID>, <lab name>, <VM name><Start or Stop> 작업에 적절한 값을 제공합니다.

    set SUBSCRIPTIONID=<Subscription ID>
    set DEVTESTLABNAME=<lab name>
    set VMNAME=<VM name>
    set ACTION=<Start or Stop>
    
  2. Azure 계정에 로그인합니다. Azure 구독이 여러 개인 경우 제공한 구독 ID를 사용하려면 az account set 줄의 주석 처리를 제거합니다.

    az login
    
    REM az account set --subscription %SUBSCRIPTIONID%
    
  3. 랩이 포함된 리소스 그룹의 이름을 가져옵니다.

    az resource list --resource-type "Microsoft.DevTestLab/labs" --name %DEVTESTLABNAME% --query "[0].resourceGroup"
    
  4. <resourceGroup>을 이전 단계에서 얻은 값으로 바꿉니다.

    set RESOURCEGROUP=<resourceGroup>
    
  5. 명령줄을 실행하여 ACTION에 전달한 값을 기반으로 VM을 시작하거나 중지합니다.

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

다음 단계