빠른 시작: Azure Stack Hub에서 PowerShell을 사용하여 Windows Server VM 만들기

Azure Stack Hub PowerShell을 사용하여 Windows Server 2016 VM(가상 머신)을 만들 수 있습니다. 이 문서의 단계에 따라 VM을 만들고 사용합니다. 이 문서에서는 다음 단계를 제공합니다.

  • 원격 클라이언트를 사용하여 VM에 연결합니다.
  • IIS 웹 서버를 설치하고 기본 홈페이지를 봅니다.
  • 리소스를 정리합니다.

참고

이 문서에 설명된 단계는 Azure Stack 개발 키트에서 실행하거나 VPN을 통해 연결된 경우 Windows 기반 외부 클라이언트에서 실행할 수 있습니다.

Windows Server VM에 대한 필수 구성 요소

  • Azure Stack Hub 운영자가 Azure Stack Hub Marketplace에 Windows Server 2016 이미지를 추가했는지 확인합니다.

  • Azure Stack Hub는 리소스를 만들고 관리하기 위해 특정 버전의 Azure PowerShell 필요합니다. Azure Stack Hub에 대해 구성된 PowerShell이 없는 경우 단계에 따라 PowerShell을 설치 합니다.

  • Azure Stack Hub PowerShell을 설정하면 Azure Stack Hub 환경에 연결해야 합니다. 자세한 내용은 PowerShell을 사용자로 사용하여 Azure Stack Hub에 연결을 참조하세요.

리소스 그룹 만들기

리소스 그룹은 Azure Stack Hub 리소스가 배포되고 관리되는 논리적 컨테이너입니다. 개발 키트 또는 Azure Stack Hub 통합 시스템에서 다음 코드 블록을 실행하여 리소스 그룹을 만듭니다.

참고

코드 예제의 모든 변수에 대해 값이 할당됩니다. 그러나 원하는 경우 새 값을 할당할 수 있습니다.

# Create variables to store the location and resource group names.
$location = "local"
$ResourceGroupName = "myResourceGroup"

New-AzResourceGroup `
  -Name $ResourceGroupName `
  -Location $location

스토리지 리소스 만들기

부팅 진단 출력을 저장할 스토리지 계정을 만듭니다.

# Create variables to store the storage account name and the storage account SKU information
$StorageAccountName = "mystorageaccount"
$SkuName = "Standard_LRS"

# Create a new storage account
$StorageAccount = New-AzStorageAccount `
  -Location $location `
  -ResourceGroupName $ResourceGroupName `
  -Type $SkuName `
  -Name $StorageAccountName

Set-AzCurrentStorageAccount `
  -StorageAccountName $storageAccountName `
  -ResourceGroupName $resourceGroupName

네트워킹 리소스 만들기

가상 네트워크, 서브넷 및 공용 IP 주소를 만듭니다. 이러한 리소스는 VM에 대한 네트워크 연결을 제공하는 데 사용됩니다.

# Create a subnet configuration
$subnetConfig = New-AzVirtualNetworkSubnetConfig `
  -Name mySubnet `
  -AddressPrefix 192.168.1.0/24

# Create a virtual network
$vnet = New-AzVirtualNetwork `
  -ResourceGroupName $ResourceGroupName `
  -Location $location `
  -Name MyVnet `
  -AddressPrefix 192.168.0.0/16 `
  -Subnet $subnetConfig

# Create a public IP address and specify a DNS name
$pip = New-AzPublicIpAddress `
  -ResourceGroupName $ResourceGroupName `
  -Location $location `
  -AllocationMethod Static `
  -IdleTimeoutInMinutes 4 `
  -Name "mypublicdns$(Get-Random)"

네트워크 보안 그룹 및 네트워크 보안 그룹 규칙 만들기

네트워크 보안 그룹은 인바운드 및 아웃바운드 규칙을 사용하여 VM을 보호합니다. 들어오는 원격 데스크톱 연결을 허용하는 포트 3389에 대한 인바운드 규칙과 들어오는 웹 트래픽을 허용하는 포트 80에 대한 인바운드 규칙을 만들어 보겠습니다.

# Create an inbound network security group rule for port 3389
$nsgRuleRDP = New-AzNetworkSecurityRuleConfig `
  -Name myNetworkSecurityGroupRuleRDP `
  -Protocol Tcp `
  -Direction Inbound `
  -Priority 1000 `
  -SourceAddressPrefix * `
  -SourcePortRange * `
  -DestinationAddressPrefix * `
  -DestinationPortRange 3389 `
  -Access Allow

# Create an inbound network security group rule for port 80
$nsgRuleWeb = New-AzNetworkSecurityRuleConfig `
  -Name myNetworkSecurityGroupRuleWWW `
  -Protocol Tcp `
  -Direction Inbound `
  -Priority 1001 `
  -SourceAddressPrefix * `
  -SourcePortRange * `
  -DestinationAddressPrefix * `
  -DestinationPortRange 80 `
  -Access Allow

# Create a network security group
$nsg = New-AzNetworkSecurityGroup `
  -ResourceGroupName $ResourceGroupName `
  -Location $location `
  -Name myNetworkSecurityGroup `
  -SecurityRules $nsgRuleRDP,$nsgRuleWeb

VM에 대한 네트워크 카드 만들기

네트워크 카드 VM을 서브넷, 네트워크 보안 그룹 및 공용 IP 주소에 연결합니다.

# Create a virtual network card and associate it with public IP address and NSG
$nic = New-AzNetworkInterface `
  -Name myNic `
  -ResourceGroupName $ResourceGroupName `
  -Location $location `
  -SubnetId $vnet.Subnets[0].Id `
  -PublicIpAddressId $pip.Id `
  -NetworkSecurityGroupId $nsg.Id

VM 만들기

VM 구성을 만듭니다. 이 구성에는 VM을 배포할 때 사용되는 설정이 포함됩니다. 예: 자격 증명, 크기 및 VM 이미지.

# Define a credential object to store the username and password for the VM
$UserName='demouser'
$Password='Password@123'| ConvertTo-SecureString -Force -AsPlainText
$Credential=New-Object PSCredential($UserName,$Password)

# Create the VM configuration object
$VmName = "VirtualMachinelatest"
$VmSize = "Standard_A1"
$VirtualMachine = New-AzVMConfig `
  -VMName $VmName `
  -VMSize $VmSize

$VirtualMachine = Set-AzVMOperatingSystem `
  -VM $VirtualMachine `
  -Windows `
  -ComputerName "MainComputer" `
  -Credential $Credential -ProvisionVMAgent

$VirtualMachine = Set-AzVMSourceImage `
  -VM $VirtualMachine `
  -PublisherName "MicrosoftWindowsServer" `
  -Offer "WindowsServer" `
  -Skus "2016-Datacenter" `
  -Version "latest"

# Sets the operating system disk properties on a VM.
$VirtualMachine = Set-AzVMOSDisk `
  -VM $VirtualMachine `
  -CreateOption FromImage | `
  Set-AzVMBootDiagnostic -ResourceGroupName $ResourceGroupName `
  -StorageAccountName $StorageAccountName -Enable |`
  Add-AzVMNetworkInterface -Id $nic.Id


# Create the VM.
New-AzVM `
  -ResourceGroupName $ResourceGroupName `
  -Location $location `
  -VM $VirtualMachine

VM에 연결

이전 단계에서 만든 VM에 원격으로 연결하려면 공용 IP 주소가 필요합니다. 다음 명령을 실행하여 VM의 공용 IP 주소를 가져옵니다.

Get-AzPublicIpAddress `
  -ResourceGroupName $ResourceGroupName | Select IpAddress

다음 명령을 사용하여 VM을 사용하여 원격 데스크톱 세션을 만듭니다. IP 주소를 VM의 publicIPAddress로 바꿉니다. 메시지가 표시되면 VM을 만들 때 사용되는 사용자 이름 및 암호를 입력합니다.

mstsc /v <publicIpAddress>

PowerShell을 통해 IIS 설치

이제 Azure VM에 로그인했으므로 한 줄의 PowerShell을 사용하여 IIS를 설치하고 웹 트래픽을 허용하도록 로컬 방화벽 규칙을 사용하도록 설정할 수 있습니다. PowerShell 프롬프트를 열고 다음 명령을 실행합니다.

Install-WindowsFeature -name Web-Server -IncludeManagementTools

IIS 시작 페이지 보기

IIS가 설치되고 VM에서 포트 80이 열려 있는 경우 모든 브라우저를 사용하여 기본 IIS 시작 페이지를 볼 수 있습니다. 이전 섹션에서 설명한 publicIpAddress 를 사용하여 기본 페이지를 방문합니다.

IIS 기본 사이트

VM 삭제

더 이상 필요하지 않은 경우 다음 명령을 사용하여 VM 및 관련 리소스가 포함된 리소스 그룹을 제거합니다.

Remove-AzResourceGroup `
  -Name $ResourceGroupName

다음 단계

이 빠른 시작에서는 간단한 Windows VM을 배포했습니다. Azure Stack Hub VM에 대해 자세히 알아보려면 Azure Stack Hub VM 기능을 계속 진행하세요.