Szybki start: tworzenie maszyny wirtualnej z systemem Windows Server przy użyciu programu PowerShell w usłudze Azure Stack Hub

Maszynę wirtualną (VM) można utworzyć Windows Server 2016 przy użyciu programu PowerShell usługi Azure Stack Hub. Wykonaj kroki opisane w tym artykule, aby utworzyć maszynę wirtualną i używać jej. Ten artykuł zawiera również następujące kroki:

  • Nawiąż połączenie z maszyną wirtualną za pomocą klienta zdalnego.
  • Zainstaluj serwer internetowy usług IIS i wyświetl domyślną stronę główną.
  • Czyszczenie zasobów.

Uwaga

Możesz uruchomić kroki opisane w tym artykule z zestawu Azure Stack Development Kit lub z klienta zewnętrznego opartego na systemie Windows, jeśli masz połączenie za pośrednictwem sieci VPN.

Wymagania wstępne dotyczące maszyny wirtualnej z systemem Windows Server

  • Upewnij się, że operator usługi Azure Stack Hub dodał obraz Windows Server 2016 do witryny Azure Stack Hub Marketplace.

  • Usługa Azure Stack Hub wymaga określonej wersji Azure PowerShell do tworzenia zasobów i zarządzania nimi. Jeśli nie masz skonfigurowanego programu PowerShell dla usługi Azure Stack Hub, wykonaj kroki instalacji programu PowerShell.

  • Po skonfigurowaniu programu PowerShell usługi Azure Stack Hub należy nawiązać połączenie ze środowiskiem usługi Azure Stack Hub. Aby uzyskać instrukcje, zobacz Nawiązywanie połączenia z usługą Azure Stack Hub przy użyciu programu PowerShell jako użytkownik.

Tworzenie grupy zasobów

Grupa zasobów to logiczny kontener, w którym zasoby usługi Azure Stack Hub są wdrażane i zarządzane. W zestawie deweloperów lub zintegrowanym systemie Usługi Azure Stack Hub uruchom następujący blok kodu, aby utworzyć grupę zasobów.

Uwaga

Wartości są przypisywane dla wszystkich zmiennych w przykładach kodu. Można jednak przypisać nowe wartości, jeśli chcesz.

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

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

Tworzenie zasobów magazynu

Utwórz konto magazynu do przechowywania danych wyjściowych diagnostyki rozruchu.

# 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

Tworzenie zasobów sieciowych

Utwórz sieć wirtualną, podsieć i publiczny adres IP. Te zasoby są używane do zapewnienia łączności sieciowej z maszyną wirtualną.

# 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)"

Tworzenie sieciowej grupy zabezpieczeń i reguły sieciowej grupy zabezpieczeń

Sieciowa grupa zabezpieczeń zabezpiecza maszynę wirtualną przy użyciu reguł ruchu przychodzącego i wychodzącego. Utwórzmy regułę ruchu przychodzącego dla portu 3389, aby zezwolić na przychodzące połączenia pulpitu zdalnego i regułę ruchu przychodzącego dla portu 80, aby zezwolić na przychodzący ruch internetowy.

# 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

Tworzenie karty sieciowej dla maszyny wirtualnej

Karta sieciowa łączy maszynę wirtualną z podsiecią, sieciową grupą zabezpieczeń i publicznym adresem 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

Tworzenie maszyny wirtualnej

Utwórz konfigurację maszyny wirtualnej. Ta konfiguracja obejmuje ustawienia używane podczas wdrażania maszyny wirtualnej. Na przykład: poświadczenia, rozmiar i obraz maszyny wirtualnej.

# 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

Łączenie z maszyną wirtualną

Aby zdalnie połączyć się z maszyną wirtualną utworzoną w poprzednim kroku, potrzebny jest jej publiczny adres IP. Uruchom następujące polecenie, aby uzyskać publiczny adres IP maszyny wirtualnej:

Get-AzPublicIpAddress `
  -ResourceGroupName $ResourceGroupName | Select IpAddress

Użyj następującego polecenia, aby utworzyć sesję pulpitu zdalnego z maszyną wirtualną. Zastąp adres IP adresem publicIPAddress maszyny wirtualnej. Po wyświetleniu monitu wprowadź nazwę użytkownika i hasło używane podczas tworzenia maszyny wirtualnej.

mstsc /v <publicIpAddress>

Instalowanie usług IIS za pośrednictwem programu PowerShell

Po zalogowaniu się do maszyny wirtualnej platformy Azure możesz użyć jednego wiersza programu PowerShell do zainstalowania usług IIS i włączenia lokalnej reguły zapory, aby zezwolić na ruch internetowy. Otwórz wiersz polecenia programu PowerShell i uruchom następujące polecenie:

Install-WindowsFeature -name Web-Server -IncludeManagementTools

Wyświetlanie strony powitalnej usług IIS

Po zainstalowaniu usług IIS i otwarciu portu 80 na maszynie wirtualnej możesz użyć dowolnej przeglądarki do wyświetlenia domyślnej strony powitalnej usług IIS. Użyj elementu publicIpAddress opisanego w poprzedniej sekcji, aby odwiedzić stronę domyślną.

Domyślna witryna usług IIS

Usuwanie maszyny wirtualnej

Gdy grupa zasobów zawierająca maszynę wirtualną i jej powiązane zasoby nie będzie już potrzebna, użyj następującego polecenia:

Remove-AzResourceGroup `
  -Name $ResourceGroupName

Następne kroki

W tym przewodniku Szybki start wdrożono prostą maszynę wirtualną z systemem Windows. Aby dowiedzieć się więcej o maszynach wirtualnych usługi Azure Stack Hub, przejdź do funkcji maszyn wirtualnych usługi Azure Stack Hub.