Azure CLI 스크립트를 사용하여 리소스 만들기

완료됨

복잡하거나 반복적인 작업을 수동으로 수행하면 시간이 많이 걸리고 오류가 발생하기 쉽습니다. 조직에서는 비용을 절감하고 실수를 방지하기 위해 이러한 작업을 자동화하는 것을 선호합니다.

자동화는 여러 가상 컴퓨터에서 소프트웨어를 테스트하는 CRM(고객 관계 관리) 예제에서 필수적입니다. 이러한 컴퓨터를 지속적으로 삭제하고 다시 만들어야 할 수 있습니다. Azure CLI 스크립트를 사용하여 VM 생성을 자동화하는 것은 매번 수동으로 생성하는 것보다 훨씬 더 효율적이고 안정적입니다.

VM을 만드는 핵심 작업 외에도 스크립트는 몇 가지 다른 요구 사항을 충족해야 합니다.

  • 여러 VM 만들기: 고유한 이름의 VM을 여러 개 만들려면 az vm create을 사용합니다.
  • 리소스 그룹 매개 변수: 스크립트가 리소스 그룹의 이름을 매개 변수로 수락하도록 허용합니다.

이 단원에서는 이러한 요구 사항을 충족하는 Bash 환경에서 Azure CLI 스크립트를 작성하고 실행하는 방법에 대해 알아봅니다.

az Azure CLI Bash 스크립트란?

Azure CLI 스크립트는 명령 및 제어문을 포함하는 텍스트 파일입니다. 스크립트는 명령문을 실행하고, 제어문은 Bash에서 제공하는 루프, 변수, 매개 변수, 주석 등과 같은 프로그래밍 기능입니다.

Azure CLI Bash 스크립트 파일에는 .sh 파일 확장자가 있습니다. 텍스트 편집기를 사용하여 이러한 파일을 만들고 저장할 수 있습니다.

스크립트를 만든 후에는 파일 이름을 전달하여 명령줄에서 스크립트를 실행할 수 있습니다. 파일명은 현재 디렉터리의 점과 역 슬래시 앞에 기입합니다.

.\myScript.sh

Bash 기술

Bash에는 프로그래밍 언어에서 흔히 찾을 수 있는 기능이 포함되어 있습니다. 본 연습에서 중요하게 다루고 있는 스크립트에서는 변수, 루프, 매개 변수라는 세 가지 주요 기능을 사용하게 됩니다.

변수

Azure CLI에서 변수에 값을 할당하면 변수가 자동으로 생성됩니다. 예시:

location="eastus"

변수에 저장된 값을 확인하려면 $ 접두사와 해당 이름을 사용합니다.

echo $location

반복

Bash에는 until, while, for을 비롯한 여러 루프 구조가 있습니다. for 루프는 컬렉션의 특정 개수의 값에 대해 루프를 실행해야 하는 시나리오에 적합합니다.

#!/bin/bash
for i in 1 2 3
do
   echo "Loop $i times"
done

매개 변수

Azure CLI 스크립트를 만들 때 스크립트에 매개 변수를 추가한 다음 스크립트를 실행할 때 이러한 매개 변수의 값을 지정할 수 있습니다. 예시:

.\setupEnvironment.sh parameter1 parameter2 parameter3

스크립트 내에서 값을 변수로 캡처합니다. 이 예시에서 매개 변수는 loopCount이름입니다.

#!/bin/bash

loopCount=3
name="msdocs"

for i in $(seq 1 $loopCount)
do
    loopName="loop $i for $name"
    echo $loopName
done

출력은 다음과 같습니다.

loop 1 for msdocs
loop 2 for msdocs
loop 3 for msdocs

이러한 매개 변수를 입력 및 루프로 사용하여 지정된 매개 변수를 기반으로 VM 집합을 만들 수 있습니다. 이 방식은 스크립트를 제네릭화하고 동일한 코드가 반복되는 것을 방지합니다.

예제 스크립트

다음은 변수, 루프 및 매개 변수를 사용하여 여러 VM을 만드는 방법을 보여 주는 스크립트 예입니다.

#!/bin/bash
    
# Assign parameters to variables
vmCount=$1
adminUserPrefix=$2
shift 2
images=("$@")
    
# Loop 
for i in $(seq 1 $vmCount)
do
    let "randomIdentifier=$RANDOM*$RANDOM"
    resourceGroupName="msdocs-rg-$randomIdentifier"
    location="westus"
    adminUserName="msdocs-$randomIdentifier"
    vmName="msdocs-vm-$randomIdentifier"
    vmImage=${images[$((i-1)) % ${#images[@]}]}

    echo "Creating VM $vmName on $mvImage with admin $adminUserName in resource group $resourceGroupName"

    # create the resource group
    az group create --name $resourceGroupName --location $location

    # create the VM
    az vm create \
        --resource-group $resourceGroupName \
        --location $location \
        --admin-username $adminUserName \
        --name $vmName \
        --image $vmImage \
        --generate-ssh-keys

done

스크립트 실행

스크립트를 msdocs-script.sh로 저장하고 이를 Bash 명령줄에서 실행하면 필수 매개 변수를 얻을 수 있습니다.

./msdocs-script.sh 3  Debian11 Debian11 Ubuntu2204

이 스크립트를 사용하면 다양한 리소스 그룹에 여러 VM을 효율적으로 생성할 수 있고, 반복 작업을 자동화할 수 있으며, Azure 전체 환경 내에서 일관성 있게 작업할 수 있습니다. 다음 단원에서는 추가 매개 변수를 포함할 수 있는 스크립트를 생성해 보고 작업을 성공적으로 완료했는지 확인할 수 있는 방법에 대해 알아보겠습니다.