Azure PowerShell을 사용하여 가상 머신 만들기
이 자습서에서는 Azure PowerShell을 사용하여 가상 머신을 설정하는 데 관련된 모든 단계를 알아봅니다. 또한 이 자습서에서는 출력 쿼리, Azure 리소스 재사용 및 리소스 정리에 대해서도 설명합니다.
이 자습서는 Azure Cloud Shell을 통해 제공되는 대화형 환경으로 완료하거나 Azure PowerShell 로컬로 설치할
서명하세요
Azure PowerShell의 로컬 설치를 사용하는 경우 다른 단계를 수행하기 전에 로그인해야 합니다.
Connect-AzAccount
터미널에 표시된 단계에 따라 로그인 프로세스를 완료합니다.
리소스 그룹 만들기
Azure에서 모든 리소스는 리소스 관리 그룹에 할당됩니다. 리소스 그룹은 컬렉션으로 더 쉽게 작업할 수 있도록 리소스의 논리적 그룹을 제공합니다.
이 자습서에서는 생성된 모든 리소스가 TutorialResources
라는 단일 그룹으로 이동합니다.
New-AzResourceGroup -Name TutorialResources -Location eastus
ResourceGroupName : TutorialResources
Location : eastus
ProvisioningState : Succeeded
Tags :
ResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TutorialResources
VM에 대한 관리자 자격 증명 만들기
새 가상 머신을 만들려면 먼저 Windows VM의 관리자 계정에 대한 사용자 이름과 암호를 포함하는 자격 증명 개체를 만들어야 합니다.
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
메시지가 표시되면 사용자 이름 및 암호를 입력합니다. 결과 자격 증명 개체는 다음 단계에서 매개 변수로 전달됩니다.
Windows PowerShell credential request.
Enter a username and password for the virtual machine.
User: tutorAdmin
Password for user tutorAdmin: *********
가상 머신 만들기
Azure의 가상 머신에는 많은 종속성이 있습니다. Azure PowerShell은 지정한 명령줄 인수에 따라 이러한 리소스를 만듭니다. 가독성을 위해 PowerShell 스플래팅 사용하여 Azure PowerShell cmdlet에 매개 변수를 전달합니다.
Windows를 실행하는 새 가상 머신을 만듭니다.
$vmParams = @{
ResourceGroupName = 'TutorialResources'
Name = 'TutorialVM1'
Location = 'eastus'
ImageName = 'Win2016Datacenter'
PublicIpAddressName = 'tutorialPublicIp'
Credential = $cred
OpenPorts = 3389
Size = 'Standard_D2s_v3'
}
$newVM1 = New-AzVM @vmParams
VM을 만들 때 사용되는 매개 변수 값과 Azure 리소스가 생성되는 것을 볼 수 있습니다. PowerShell은 아래와 같이 진행률 표시줄을 표시합니다.
Creating Azure resources
39% \
[ooooooooooooooooooooooooooooooooooo ]
Creating TutorialVM1 virtual machine.
VM이 준비되면 Azure Portal에서 또는 $newVM1
변수를 검사하여 결과를 볼 수 있습니다.
$newVM1
ResourceGroupName : TutorialResources
Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TutorialResources/providers/Microsoft.Compute/virtualMachines/TutorialVM1
VmId : 00000000-0000-0000-0000-000000000000
Name : TutorialVM1
Type : Microsoft.Compute/virtualMachines
Location : eastus
Tags : {}
HardwareProfile : {VmSize}
NetworkProfile : {NetworkInterfaces}
OSProfile : {ComputerName, AdminUsername, WindowsConfiguration, Secrets}
ProvisioningState : Succeeded
StorageProfile : {ImageReference, OsDisk, DataDisks}
중괄호 안에 나열된 속성 값은 중첩된 개체입니다. 다음 단계에서는 이러한 중첩된 개체에서 특정 값을 보는 방법을 보여 드립니다.
쿼리를 사용하여 VM 정보 가져오기
방금 만든 VM에서 좀 더 자세한 정보를 살펴보겠습니다. 이 예제에서는 만든 VM의 이름과 관리자 계정을 확인합니다.
$newVM1.OSProfile | Select-Object -Property ComputerName, AdminUserName
ComputerName AdminUsername
------------ -------------
TutorialVM1 tutorialAdmin
다른 Azure PowerShell 명령을 사용하여 네트워크 구성에 대한 특정 정보를 가져올 수 있습니다.
$newVM1 | Get-AzNetworkInterface |
Select-Object -ExpandProperty IpConfigurations |
Select-Object -Property Name, PrivateIpAddress
이 예제에서는 PowerShell 파이프라인을 사용하여 $newVM 1 개체를 Get-AzNetworkInterface
cmdlet으로 보냅니다. 결과 네트워크 인터페이스 개체에서 중첩된 IpConfigurations 개체를 선택합니다. IpConfigurations 개체에서 Name 및 PrivateIpAddress 속성을 선택합니다.
Name PrivateIpAddress
---- ----------------
TutorialVM1 192.168.1.4
VM이 실행 중인지 확인하려면 원격 데스크톱을 통해 연결해야 합니다. 이를 위해 공용 IP 주소를 알아야 합니다.
$publicIp = Get-AzPublicIpAddress -Name tutorialPublicIp -ResourceGroupName TutorialResources
$publicIp |
Select-Object -Property Name, IpAddress, @{label='FQDN';expression={$_.DnsSettings.Fqdn}}
이 예제에서는 Get-AzPublicIpAddress
사용하고 결과를 $publicIp
변수에 저장합니다. 이 변수에서 속성을 선택하고 식을 사용하여 중첩된 Fqdn 속성을 검색합니다.
Name IpAddress FQDN
---- --------- ----
tutorialPublicIp <PUBLIC_IP_ADDRESS> tutorialvm1-8a0999.eastus.cloudapp.azure.com
로컬 컴퓨터에서 다음 명령을 실행하여 원격 데스크톱을 통해 VM에 연결할 수 있습니다.
mstsc.exe /v $publicIp.IpAddress
개체 속성 쿼리에 대한 자세한 내용은Azure 리소스에 대한
기존 서브넷에 새 VM 만들기
두 번째 VM은 기존 서브넷을 사용합니다.
$vm2Params = @{
ResourceGroupName = 'TutorialResources'
Name = 'TutorialVM2'
ImageName = 'Win2016Datacenter'
VirtualNetworkName = 'TutorialVM1'
SubnetName = 'TutorialVM1'
PublicIpAddressName = 'tutorialPublicIp2'
Credential = $cred
OpenPorts = 3389
}
$newVM2 = New-AzVM @vm2Params
$newVM2
ResourceGroupName : TutorialResources
Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TutorialResources/providers/Microsoft.Compute/virtualMachines/TutorialVM2
VmId : 00000000-0000-0000-0000-000000000000
Name : TutorialVM2
Type : Microsoft.Compute/virtualMachines
Location : eastus
Tags : {}
HardwareProfile : {VmSize}
NetworkProfile : {NetworkInterfaces}
OSProfile : {ComputerName, AdminUsername, WindowsConfiguration, Secrets}
ProvisioningState : Succeeded
StorageProfile : {ImageReference, OsDisk, DataDisks}
FullyQualifiedDomainName : tutorialvm2-dfa5af.eastus.cloudapp.azure.com
새 VM이 $newVM2
개체의 FullyQualifiedDomainName 속성에 반환되므로 몇 단계를 건너뛰어 새 VM의 공용 IP 주소를 가져올 수 있습니다. 다음 명령을 사용하여 원격 데스크톱을 사용하여 연결합니다.
mstsc.exe /v $newVM2.FullyQualifiedDomainName
정리
이제 자습서가 완료되었으므로 만든 리소스를 정리해야 합니다.
Remove-AzResource
명령을 사용하여 개별 리소스를 삭제할 수 있지만 리소스 그룹의 모든 리소스를 제거하는 가장 안전한 방법은 Remove-AzResourceGroup
명령을 사용하여 그룹을 삭제하는 것입니다.
$job = Remove-AzResourceGroup -Name TutorialResources -Force -AsJob
$job
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
1 Long Running... AzureLongRun... Running True localhost Remove-AzResource...
이 명령은 자습서 중에 만든 리소스를 삭제하고 올바른 순서로 할당을 취소합니다.
AsJob
매개 변수는 삭제가 진행되는 동안 PowerShell이 차단하지 않도록 합니다. 삭제가 완료될 때까지 기다리려면 다음 명령을 사용합니다.
Wait-Job -Id $job.Id
정리가 완료되면 자습서가 완료됩니다. 학습한 모든 항목에 대한 요약과 다음 단계에 도움이 되는 리소스에 대한 링크를 계속 진행합니다.
요약
축하합니다! 새 리소스 또는 기존 리소스를 사용하여 VM을 만들고, 식 및 기타 Azure PowerShell 명령을 사용하여 셸 변수에 저장할 데이터를 캡처하는 방법을 알아보고, Azure VM용으로 생성된 일부 리소스를 살펴보았습니다.
여기에서 이동하는 위치는 Azure PowerShell을 사용하는 방법에 따라 달라집니다. 이 자습서에서 다루는 기능에 대해 자세히 설명하는 다양한 자료가 있습니다.
심층 Azure PowerShell 설명서
전체 Azure PowerShell 설명서 집합을 살펴보는 데 시간이 걸릴 수 있습니다.
이 자습서에서 사용되는 명령에 대한 자세한 내용은 다음 문서를 참조하세요.
- New-AzResourceGroup
- Get-Credential
- New-AzVM
- Select-Object
- Get-AzPublicIpAddress
- Remove-AzResourceGroup
- 대기 작업
자습서에 표시된 기능에 대해 자세히 살펴보는 문서도 있습니다.
- PowerShell 스플래팅
- 쿼리
- 서식
- PowerShell 작업 사용하는
샘플 스크립트
특정 작업을 즉시 시작하려면 몇 가지 샘플 스크립트를 살펴보세요.
피드백
피드백, 제안 또는 질문하고 싶은 경우 다양한 방법으로 연락할 수 있습니다.
-
Send-Feedback
팀에 자유 형식 피드백을 제공할 수 있는 Azure PowerShell에 대한 기본 제공 명령입니다. - Azure PowerShell 리포지토리
기능 요청 또는 버그 보고서를 제출합니다. - Azure PowerShell 설명서 리포지토리
문제를 제출하여 질문하거나 설명을 가져옵니다.
Azure PowerShell을 사용하길 바랍니다!
본 섹션과 관련하여 문제가 있으십니까? 문제가 있으시면 본 섹션을 개선하기 위해 피드백을 제출해 주세요.
Azure PowerShell