연습 - 스크립트를 사용하여 Azure PowerShell로 Azure 리소스 만들기

완료됨

이 단원에서는 Linux 관리 도구를 개발하는 회사의 예를 계속 설명합니다. 목표는 Linux VM(Virtual Machines)을 사용하여 잠재 고객이 소프트웨어를 테스트할 수 있도록 하는 것입니다. 리소스 그룹이 이미 설정되었으므로 이제 VM을 만들 차례입니다.

회사에서 대규모 Linux 무역 박람회에서 부스를 확보했습니다. 각각 별도의 Linux VM에 연결된 세 개의 터미널이 있는 데모 영역을 설정할 계획입니다. 매일 아침 새로 시작하려면 VM을 삭제하고 하루가 끝날 때 다시 만들어야 합니다. 긴 하루를 보낸 후 VM을 수동으로 만들면 오류가 발생하기 쉬우므로 VM 만들기 프로세스를 자동화하려면 PowerShell 스크립트를 작성해야 합니다.

참고

이 연습은 선택 사항입니다. 이 연습을 완료하려면 시작하기 전에 Azure 구독을 만들어야 합니다. Azure 계정이 없거나 현재 계정을 만들지 않으려는 경우 제공되는 정보를 이해할 수 있도록 지침을 읽을 수 있습니다.

가상 머신을 만드는 스크립트 작성

가상 머신 만들기를 자동화하는 Azure Cloud Shell에서 스크립트를 작성하려면 다음 단계를 따릅니다.

참고

일반적으로 Connect-AzAccount와 함께 자격 증명을 사용하여 Azure에 인증하지만 Cloud Shell에서는 이미 인증되었으므로 이 단계가 필요하지 않습니다.

  1. 홈 폴더로 전환합니다.

    Set-Location -Path $HOME
    
  2. 새 PowerShell 스크립트 파일을 만듭니다.

    New-Item -Name ConferenceDailyReset.ps1 -ItemType File
    
  3. 통합 VS Code(Visual Studio Code) 편집기를 엽니다.

    code ./ConferenceDailyReset.ps1
    

    통합 Cloud Shell 편집기는 vim, nano, emacs 편집기 중 하나를 사용하려는 경우에도 지원합니다.

  4. 리소스 그룹 이름에 대한 매개 변수를 정의합니다.

    다음 줄을 스크립트에 추가합니다.

    param (
        [string]$ResourceGroupName
    )
    
  5. VM 관리자 자격 증명에 대한 프롬프트:

    $adminCredential = Get-Credential -Message 'Enter a username and password for the VM administrator.'
    
  6. 세 번 실행하는 루프를 만듭니다.

    $vms = 'web','app','sql'
    foreach ($vm in $vms) {
        $vm
    }
    
  7. 루프에서 각 VM의 이름을 반환합니다.

    Write-Output "Creating VM: $vm"
    
  8. $vm 변수를 사용하여 VM을 만듭니다.

    $azVmParams = @{
        ResourceGroupName = $ResourceGroupName
        Name              = $vm
        Credential        = $adminCredential
        Image             = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
        OpenPorts         = 22
    }
    New-AzVm @azVmParams
    
  9. 파일 저장:

    스크립트를 저장하려면 편집기 오른쪽 상단에 있는 줄임표(...) 바로 가기 메뉴나 Ctrl + S 바로 가기 키를 사용합니다.

완료된 스크립트

완료된 스크립트는 다음 예와 같아야 합니다.

param (
    [string]$ResourceGroupName
)

$adminCredential = Get-Credential -Message 'Enter a username and password for the VM administrator.'

$vms = 'web','app','sql'

foreach ($vm in $vms) {

    Write-Output "Creating VM: $vm"

    $azVmParams = @{
        ResourceGroupName = $ResourceGroupName
        Name              = $vm
        Credential        = $adminCredential
        Image             = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
        OpenPorts         = 22
    }
    New-AzVm @azVmParams
}

스크립트가 이전 예의 코드와 같은지 확인한 후, 편집기 오른쪽 상단에 있는 줄임표(...) 바로 가기 메뉴를 사용하거나 Ctrl + Q 바로 가기 키를 사용하여 편집기를 닫습니다.

스크립트 실행

  1. 다음 명령을 사용하여 스크립트를 실행합니다.

    ./ConferenceDailyReset.ps1 -ResourceGroupName myResourceGroupName
    
  2. 완료될 때까지 기다립니다. 스크립트를 완료하는 데는 몇 분 정도 걸립니다.

  3. VM을 확인합니다. 스크립트가 완료되면 리소스 그룹에 VM을 나열하여 성공적으로 완료되었는지 확인합니다.

    Get-AzVM -ResourceGroupName myResourceGroupName
    

    각각 고유한 이름을 가진 세 개의 VM이 표시됩니다.

각각 특정 리소스 그룹에 있는 3개의 VM 만들기를 자동화하는 스크립트를 성공적으로 만들어 무역 박람회에서 매일 데모할 수 있도록 준비했습니다. 스크립트는 짧고 간단하지만 Azure Portal을 통해 수동으로 수행할 경우 시간이 많이 걸리고 오류가 발생하기 쉬운 프로세스의 속도를 크게 높여줍니다.