Início Rápido: Criar uma VM do Windows Server com o PowerShell no Azure Stack Hub

Pode criar uma máquina virtual (VM) Windows Server 2016 com o PowerShell do Azure Stack Hub. Siga os passos neste artigo para criar e utilizar uma VM. Este artigo também lhe dá os passos para:

  • Ligue-se à VM com um cliente remoto.
  • Instale o servidor Web do IIS e veja a home page predefinida.
  • Limpe os seus recursos.

Nota

Pode executar os passos descritos neste artigo a partir do Azure Stack Development Kit ou a partir de um cliente externo baseado no Windows se estiver ligado através de uma VPN.

Pré-requisitos da VM do Windows Server

  • Certifique-se de que o operador do Azure Stack Hub adicionou a imagem Windows Server 2016 ao Marketplace do Azure Stack Hub.

  • O Azure Stack Hub requer uma versão específica do Azure PowerShell para criar e gerir os recursos. Se não tiver o PowerShell configurado para o Azure Stack Hub, siga os passos para instalar o PowerShell.

  • Com o PowerShell do Azure Stack Hub configurado, terá de se ligar ao ambiente do Azure Stack Hub. Para obter instruções, veja Ligar ao Azure Stack Hub com o PowerShell como um utilizador.

Criar um grupo de recursos

Um grupo de recursos é um contentor lógico no qual os recursos do Azure Stack Hub são implementados e geridos. A partir do seu kit de desenvolvimento ou do sistema integrado do Azure Stack Hub, execute o seguinte bloco de código para criar um grupo de recursos.

Nota

Os valores são atribuídos a todas as variáveis nos exemplos de código. No entanto, pode atribuir novos valores se quiser.

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

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

Criar recursos de armazenamento

Crie uma conta de armazenamento para armazenar a saída dos diagnósticos de arranque.

# 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

Criar recursos de rede

Crie uma rede virtual, uma sub-rede e um endereço IP público. Estes recursos são utilizados para fornecer conectividade de rede à 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)"

Crie um grupo de segurança de rede e uma regra de grupo de segurança de rede

O grupo de segurança de rede protege a VM com regras de entrada e saída. Vamos criar uma regra de entrada para a porta 3389 para permitir ligações de entrada do Ambiente de Trabalho Remoto e uma regra de entrada para a porta 80 para permitir o tráfego Web recebido.

# 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

Criar um cartão de rede para a VM

A placa de rede liga a VM a uma sub-rede, grupo de segurança de rede e endereço IP público.

# 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

Criar uma VM

Criar uma configuração de VM. Esta configuração inclui as definições utilizadas ao implementar a VM. Por exemplo: credenciais, tamanho e imagem da 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

Ligar à VM

Para aceder remotamente à VM que criou no passo anterior, precisa do respetivo endereço IP público. Execute o seguinte comando para obter o endereço IP público da VM:

Get-AzPublicIpAddress `
  -ResourceGroupName $ResourceGroupName | Select IpAddress

Utilize o seguinte comando para criar uma sessão de Ambiente de Trabalho Remoto com a VM. Substitua o endereço IP pelo publicIPAddress da VM. Quando lhe for pedido, introduza o nome de utilizador e a palavra-passe utilizados ao criar a VM.

mstsc /v <publicIpAddress>

Instalar o IIS através do PowerShell

Agora que iniciou sessão na VM do Azure, pode utilizar uma única linha do PowerShell para instalar o IIS e ativar a regra de firewall local para permitir o tráfego da Web. Abra uma janela do PowerShell e execute o comando seguinte:

Install-WindowsFeature -name Web-Server -IncludeManagementTools

Ver a página de boas-vindas do IIS

Com o IIS instalado e com a porta 80 aberta na VM, pode utilizar qualquer browser para ver a página de boas-vindas predefinida do IIS. Utilize o publicIpAddress que documentou na secção anterior para visitar a página predefinida.

Site predefinido do IIS

Elimine a VM

Quando já não for necessário, utilize o seguinte comando para remover o grupo de recursos que contém a VM e os respetivos recursos relacionados:

Remove-AzResourceGroup `
  -Name $ResourceGroupName

Passos seguintes

Neste início rápido, implementou uma VM do Windows simples. Para saber mais sobre as VMs do Azure Stack Hub, avance para as funcionalidades da VM do Azure Stack Hub.