연습 - Azure CLI과(와) 상호작용하는 방식으로 Azure 리소스 만들기
원래 시나리오에서는 CRM(고객 관계 관리) 소프트웨어를 테스트하려면 VM(가상 머신)을 만들어야 합니다. 새 빌드를 사용할 수 있게 되면 새 VM을 스핀업하여 정리 이미지에서 전체 설치 환경을 테스트하려고 합니다. 테스트가 완료되면 VM을 삭제할 수 있습니다.
VM을 만드는 명령을 사용해 보겠습니다.
비고
이 연습은 선택 사항입니다. 이 연습을 완료하려면 시작하기 전에 Azure 구독을 만들어야 합니다. Azure 계정이 없거나 현재 계정을 만들지 않으려는 경우 제공되는 정보를 이해할 수 있도록 지침을 읽을 수 있습니다.
비고
리소스 그룹을 사용하여 이 연습의 단계를 완료해야 합니다. 이미 만든 리소스 그룹을 사용하거나 이 연습을 위해 특별히 새 리소스 그룹을 만들 수 있습니다. 새 리소스 그룹을 만들도록 선택하면 연습을 완료할 때 만든 리소스를 더 쉽게 정리할 수 있습니다. 기존 리소스 그룹이 없거나 이 연습을 위해 특별히 새 리소스 그룹을 만들려는 경우 Azure Portal 및 Azure Resource Manager를 사용하여 리소스 그룹을 관리하여 Azure Portal을 사용하여 리소스 그룹을 만들 거나 Azure CLI를 사용하여 Azure CLI를 사용하여 Azure 리소스 그룹 관리 의 단계를 수행하여 Azure CLI를 사용하여 리소스 그룹을 만들 수 있습니다.
연습 - Azure CLI를 사용하여 Linux VM 생성하기
Azure CLI를 사용하여 새로운 Azure VM을 만드는 방법은 다음과 같습니다.
Azure Portal을 통해 또는 많은 Azure CLI 코드 블록의 오른쪽 위 모서리에 있는 Open Cloud Shell 단추를 사용하여 Azure Cloud Shell을 엽니다.
az vm create명령 기능을 사용하여 VM을 생성합니다.- 리소스 그룹의 이름을 지정합니다. 다음 예제의 myResourceGroupName 을 기존 리소스 그룹의 이름 또는 이 연습에 대해 만든 리소스 그룹의 이름으로 바꿉니다.
- 조직의 작명 기준에 따라 VM의 이름을 지정합니다.
- 사용 가능한 Azure 위치 목록에서 가까운 위치를 선택합니다.
- Linux 이미지 사용:
Ubuntu2204. - 조직의 작명 기준에 따라 관리자의 사용자 이름을 할당합니다.
#!/bin/bash # Create variables with values of your choice. rgName="myResourceGroupName" vmName="msdocs-vm-01" vmLocation="westus" vmImage="Ubuntu2204" vmAdminUserName="myAzureUserName" # Create the VM az vm create \ --resource-group $rgName \ --name $vmName \ --location $vmLocation \ --image $vmImage \ --public-ip-sku Standard \ --admin-username $vmAdminUserName \ --generate-ssh-keys팁
방금 복사 버튼을 사용하여 행으로 연속되어 있는 문자가 제거된 것을 확인하셨나요? 이 동작은 의도된 것입니다. Azure CLI는 행으로 연속된 문자 등을 포함한 다른 여러 환경에서도 실행될 수 있으므로, 복사 버튼으로 이를 제거할 수 있습니다. 서식이 지정된 스크립트를 복사하려면 마우스를 사용하여 코드 블럭의 내용을 선택하고 복사합니다.
Azure Cloud Shell에 내용을 붙여 넣으려면, Cloud Shell 터미널에서 새로운 줄을 마우스 오른쪽으로 클릭 후 붙여넣기(&Shift+Insert)를 누릅니다(macOS의 경우 ⌘+V)를 사용합니다.
스크립트가 올바르게 복사되지 않았고 Cloud Shell 터미널이 추가 입력을 기다리는 경우 Ctrl + Z 를 사용하여 프롬프트로 돌아가서 다시 시도하십시오.
Linux VM이 생성될 때까지 기다립니다.
VM 만들기 프로세스를 완료하는 데 몇 분 정도 걸립니다.
VM 관련 정보 가져오기
완료 후 Azure CLI는 VM 정보를 JSON 형식으로 반환합니다.
az vm list및az vm show명령을 사용하여 VM에 대한 특정 정보를 가져옵니다. 다음 몇 가지 예를 참조하세요.이러한 스크립트 중 일부는 이전 단계에서 저장된 변수 이름과 변수값을 사용합니다.
테이블 형식의 모든 VM 목록을 가져옵니다.
az vm list --output tableJSON 형식의 단일 VM에 대한 정보를 가져옵니다.
이 결과 중 일부는 새로운 VM이 생성된 후에 나타납니다. 그러나 스크립트에서 참조할 중첩 속성명을 알아내려면 추가 정보로 돌아가는 것을 추천합니다. 속성 이름은 대/소문자를 구분합니다.
az vm show --resource-group $rgName --name $vmNameVM 속성에 대한 정보를 가져옵니다.
# Get the time the VM was created az vm show --resource-group $rgName --name $vmName --query "timeCreated" # Get the OS disk storage account type az vm show --resource-group $rgName --name $vmName --query "storageProfile.osDisk.managedDisk.storageAccountType"VM의 속성을 변수에 저장합니다.
Azure CLI에서는 여러 출력 유형을 사용할 수 있습니다. JSON이 기본값이지만 변수에 값을 저장할 때
--output tsv을 사용하여 추가 서식을 제거합니다.#!/bin/bash # Store the VM id vmID=$(az vm show --resource-group $rgName --name $vmName --query id --output tsv) echo $vmID # Store the public IP address publicIP=$(az vm list-ip-addresses \ --resource-group $rgName \ --name $vmName \ --query "[].virtualMachine.network.publicIpAddresses[0].ipAddress" --output tsv) echo $publicIPVM에 연결합니다.
#!/bin/bash az ssh vm --private-key-file \path\to\private\key \ --resource-group $rgName \ --name $vmName \ --local-user $vmAdminUserNameexit를 입력하여 로그아웃합니다.
더 많은 VM 옵션에 대해 알아보세요
명령줄에서 Azure 리소스를 사용할 때는 Azure Portal을 사용하지 않습니다. 그러면 속성 옵션의 선택 목록을 제공하는 경우가 많습니다. 예를 들어, 사용 가능한 위치 및 VM 크기 목록이 있습니다. Azure CLI의 여러 자체 명령 그룹에 있는 몇몇 명령을 통해 이러한 정보를 확인할 수 있습니다. 다음은 VM에 대한 몇 가지 예입니다.
팁
Azure CLI --output table 형식은 사용 가능한 정보의 100%를 반환하지는 않지만, 보통 대용량의 명령 결과를 읽기 쉽게 변환합니다.
--query 매개 변수를 사용하여 가장 관심 있는 정보를 지정합니다.
위치에 맞는 VM 크기를 선택합니다.
az vm list-sizes --location westus --output table위치에 맞는 SKU를 선택합니다.
--location선택한 항목에 따라 Azure CLI가 전체 SKU 목록을 반환하는 데 1~2분 정도 소요될 수 있습니다.# virtual machines az vm list-skus --location westus --resource-type virtualMachines --output table # disks az vm list-skus --location westus --resource-type disks --output table기존 VM에 맞는 크기 조정 옵션을 선택합니다.
az vm list-vm-resize-options --resource-group $rgName --name $vmName --output table리소스 그룹의 모든 VM에 대한 세부 정보를 표시합니다.
로컬 환경에서 작업하는 경우나 구독에 다량의 VM이 있는 경우, 필터 조건에 맞는 VM을 쿼리합니다.
#!/bin/bash # details of all VMs in a specified resource group az vm show --show-details --ids $(az vm list --resource-group $rgName --query "[].id" -o tsv) # list of all VMs created in the last 7 days createDate=$(date +%F -d "-7days") az vm list --resource-group $rgName \ --query "[?timeCreated >='$createDate'].{Name:name, admin:osProfile.adminUsername, DiskSize:storageProfile.osDisk.diskSizeGb}" \ --output table # list all VMs whose disks are of a certain type # first get a list of the disk types or organization is using az vm list --resource-group $rgName --query "[].{Name:name, osDiskSize:storageProfile.osDisk.diskSizeGb, managedDiskTypes:storageProfile.osDisk.managedDisk.storageAccountType}" --output table diskType="Premium_LRS" az vm list --resource-group $rgName \ --query "[?storageProfile.osDisk.managedDisk.storageAccountType =='$diskType'].{Name:name, admin:osProfile.adminUsername, osDiskSize:storageProfile.osDisk.diskSizeGb, CreatedOn:timeCreated, vmID:id}" \ --output table
VM 중지 또는 삭제
VM 종료:
VM 요금이 계속 청구되더라도 실행 중인 VM의 전원을 끄거나 중지할 수 있습니다.
az vm stop --resource-group $rgName --name $vmName계속할지 묻는 메시지가 나타나면 Y를 입력하고 Enter 키를 누릅니다.
VM 할당 해제:
중지된 VM에 대해 요금이 청구되는 것을 막기 위해 VM을 할당 해제합니다. 할당 해제된 VM에는 더 이상 할당되지 않는 리소스가 포함되어 있습니다(더 이상 요금이 청구되지 않습니다). VM 상태가 '중지'에서 '중지(할당 해제)'로 변경됩니다.
az vm deallocate --resource-group $rgName --name $vmNameVM 삭제:
VM이 중지되면
az vm delete명령을 실행하여 이를 삭제합니다.az vm delete --resource-group $rgName --name $vmName계속할지 묻는 메시지가 나타나면 Y를 입력하고 Enter 키를 누릅니다.
이러한 명령을 상호작용 방식으로 실행하는 것보다 Azure CLI 스크립트를 작성하는 것이 훨씬 수월합니다. 스크립트를 활용하면 향후 VM을 생성하거나 삭제하는 로직을 재사용할 수 있습니다.
다음 단원에서는 Azure CLI 스크립트를 사용하여 이러한 작업을 자동화해보도록 하겠습니다.