使用 PowerShell 创建 Windows 虚拟机

Azure PowerShell 模块用于从 PowerShell 命令行或脚本创建和管理 Azure 资源。 本指南详细说明了如何使用 PowerShell 创建运行 Windows Server 2016 的 Azure 虚拟机。 部署完成后,我们连接到服务器并安装 IIS。

如果没有 Azure 订阅,可在开始前创建一个试用帐户

如果选择在本地安装并使用 PowerShell,则本教程需要 Azure PowerShell 模块版本 3.6 或更高版本。 运行 Get-Module -ListAvailable AzureRM 即可查找版本。 如果需要进行升级,请参阅 Install Azure PowerShell module(安装 Azure PowerShell 模块)。 如果在本地运行 PowerShell,则还需运行 Login-AzureRmAccount -EnvironmentName AzureChinaCloud 以创建与 Azure 的连接。

创建资源组

使用 New-AzureRmResourceGroup 创建 Azure 资源组。 资源组是在其中部署和管理 Azure 资源的逻辑容器。

New-AzureRmResourceGroup -Name myResourceGroup -Location ChinaEast

创建网络资源

创建虚拟网络、子网和公共 IP 地址。

这些资源用来与虚拟机建立网络连接,以及连接到 Internet。

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

# Create a virtual network
$vnet = New-AzureRmVirtualNetwork -ResourceGroupName myResourceGroup -Location ChinaEast `
    -Name MYvNET -AddressPrefix 192.168.0.0/16 -Subnet $subnetConfig

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

创建网络安全组和网络安全组规则。

网络安全组使用入站和出站规则保护虚拟机。 在本例中,会为端口 3389 创建一个入站规则,该规则允许传入的远程桌面连接。 我们还需要为端口 80 创建入站规则,以允许传入的 Web 流量。

# Create an inbound network security group rule for port 3389
$nsgRuleRDP = New-AzureRmNetworkSecurityRuleConfig -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-AzureRmNetworkSecurityRuleConfig -Name myNetworkSecurityGroupRuleWWW  -Protocol Tcp `
    -Direction Inbound -Priority 1001 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * `
    -DestinationPortRange 80 -Access Allow

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

为虚拟机创建网卡。

使用 New-AzureRmNetworkInterface 为虚拟机创建网卡。 网卡将虚拟机连接到子网、网络安全组和公共 IP 地址。

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

创建虚拟机

创建虚拟机配置。 此配置包括部署虚拟机时使用的设置,例如虚拟机映像、大小和身份验证配置。 运行此步骤时,会提示输入凭据。 输入的值将配置为用于虚拟机的用户名和密码。

# Define a credential object
$cred = Get-Credential

# Create a virtual machine configuration
$vmConfig = New-AzureRmVMConfig -VMName myVM -VMSize Standard_DS2 | `
    Set-AzureRmVMOperatingSystem -Windows -ComputerName myVM -Credential $cred | `
    Set-AzureRmVMSourceImage -PublisherName MicrosoftWindowsServer -Offer WindowsServer `
    -Skus 2016-Datacenter -Version latest | Add-AzureRmVMNetworkInterface -Id $nic.Id

使用 New-AzureRmVM 创建虚拟机。

New-AzureRmVM -ResourceGroupName myResourceGroup -Location ChinaEast -VM $vmConfig

连接到虚拟机

在部署完成后,创建到虚拟机的远程桌面连接。

使用 Get-AzureRmPublicIpAddress 命令返回虚拟机的公共 IP 地址。 需记下此 IP 地址,以便在后续步骤中使用浏览器连接到它测试 Web 连接。

Get-AzureRmPublicIpAddress -ResourceGroupName myResourceGroup | Select IpAddress

在本地计算机上使用以下命令创建与虚拟机的远程桌面会话。 将 IP 地址替换为虚拟机的 publicIPAddress。 出现提示时,输入创建虚拟机时使用的凭据。

mstsc /v:<publicIpAddress>

通过 PowerShell 安装 IIS

现已登录到 Azure VM,可以使用单行 PowerShell 安装 IIS,并启用本地防火墙规则以允许 Web 流量。 打开 PowerShell 提示符并运行以下命令:

Install-WindowsFeature -name Web-Server -IncludeManagementTools

查看 IIS 欢迎页

IIS 已安装,并且现在已从 Internet 打开 VM 上的端口 80 - 可以使用所选的 Web 浏览器查看默认的 IIS 欢迎页。 请务必使用前面记录的 publicIpAddress 访问默认页面。

IIS 默认站点

清理资源

如果不再需要资源组、VM 和所有相关的资源,可以使用 Remove-AzureRmResourceGroup 命令将其删除。

Remove-AzureRmResourceGroup -Name myResourceGroup

后续步骤

在本快速入门中,部署了一个简单的虚拟机、一条网络安全组规则,并安装了一个 Web 服务器。 若要深入了解 Azure 虚拟机,请继续学习 Windows VM 教程。