如何在 Azure 中自定义 Windows 虚拟机
2017-11-21 11:01
363 查看
若要以快速一致的方式配置虚拟机 (VM),通常需要某种形式的自动化。 自定义 Windows VM 的一种常用方法是使用适用于 Windows 的自定义脚本扩展。 本教程介绍如何执行下列操作:
使用自定义脚本扩展安装 IIS
创建使用自定义脚本扩展的 VM
在应用扩展后查看正在运行的 IIS 站点
本教程需要 Azure PowerShell 模块 3.6 或更高版本。 运行
自定义脚本扩展与 Azure Resource Manager 模板集成,也可以使用 Azure CLI、PowerShell、Azure 门户或 Azure 虚拟机 REST API 来运行它。
自定义脚本扩展适用于 Windows 和 Linux VM。
PowerShell复制
使用 Get-Credential 设置 VM 的管理员用户名和密码:
PowerShell复制
现在,可使用 New-AzureRmVM 创建 VM。 以下示例创建所需的虚拟网络组件、OS 配置,然后创建名为“myVM”的 VM:
PowerShell复制
创建资源和 VM 需要几分钟的时间。
PowerShell复制
PowerShell复制
然后,可将公共 IP 地址输入 Web 浏览器中。 网站随即显示,其中包括负载均衡器将流量分发到的 VM 的主机名,如下例所示:
使用自定义脚本扩展安装 IIS
创建使用自定义脚本扩展的 VM
在应用扩展后查看正在运行的 IIS 站点
转到下一教程,了解如何创建自定义 VM 映像。
立即访问http://market.azure.cn
使用自定义脚本扩展安装 IIS
创建使用自定义脚本扩展的 VM
在应用扩展后查看正在运行的 IIS 站点
本教程需要 Azure PowerShell 模块 3.6 或更高版本。 运行
Get-Module -ListAvailable AzureRM即可查找版本。 如果需要升级,请参阅安装 Azure PowerShell 模块。如果在本地运行 PowerShell,则还需运行
Login-AzureRmAccount -EnvironmentName AzureChinaCloud以创建与 Azure 的连接。
自定义脚本扩展概述
自定义脚本扩展在 Azure VM 上下载和执行脚本。 此扩展适用于部署后配置、软件安装或其他任何配置/管理任务。 可以从 Azure 存储或 GitHub 下载脚本,或者在扩展运行时将脚本提供给 Azure 门户。自定义脚本扩展与 Azure Resource Manager 模板集成,也可以使用 Azure CLI、PowerShell、Azure 门户或 Azure 虚拟机 REST API 来运行它。
自定义脚本扩展适用于 Windows 和 Linux VM。
创建虚拟机
创建 VM 之前,需使用 New-AzureRmResourceGroup 创建资源组。 以下示例在“ChinaEast”位置创建名为“myResourceGroupAutomate”的资源组:PowerShell复制
New-AzureRmResourceGroup -ResourceGroupName myResourceGroupAutomate -Location ChinaEast
使用 Get-Credential 设置 VM 的管理员用户名和密码:
PowerShell复制
$cred = Get-Credential
现在,可使用 New-AzureRmVM 创建 VM。 以下示例创建所需的虚拟网络组件、OS 配置,然后创建名为“myVM”的 VM:
PowerShell复制
# Create a subnet configuration $subnetConfig = New-AzureRmVirtualNetworkSubnetConfig ` -Name mySubnet ` -AddressPrefix 192.168.1.0/24 # Create a virtual network $vnet = New-AzureRmVirtualNetwork ` -ResourceGroupName myResourceGroupAutomate ` -Location ChinaEast ` -Name myVnet ` -AddressPrefix 192.168.0.0/16 ` -Subnet $subnetConfig # Create a public IP address and specify a DNS name $publicIP = New-AzureRmPublicIpAddress ` -ResourceGroupName myResourceGroupAutomate ` -Location ChinaEast ` -AllocationMethod Static ` -IdleTimeoutInMinutes 4 ` -Name "myPublicIP" # 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 myResourceGroupAutomate ` -Location ChinaEast ` -Name myNetworkSecurityGroup ` -SecurityRules $nsgRuleRDP,$nsgRuleWeb # Create a virtual network card and associate with public IP address and NSG $nic = New-AzureRmNetworkInterface ` -Name myNic ` -ResourceGroupName myResourceGroupAutomate ` -Location ChinaEast ` -SubnetId $vnet.Subnets[0].Id ` -PublicIpAddressId $publicIP.Id ` -NetworkSecurityGroupId $nsg.Id # 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 -ResourceGroupName myResourceGroupAutomate -Location ChinaEast -VM $vmConfig
创建资源和 VM 需要几分钟的时间。
自动安装 IIS
使用 Set-AzureRmVMExtension 安装自定义脚本扩展。 该扩展运行powershell Add-WindowsFeature Web-Server以安装 IIS Web 服务器,然后更新 Default.htm 页以显示 VM 的主机名:
PowerShell复制
Set-AzureRmVMExtension -ResourceGroupName myResourceGroupAutomate ` -ExtensionName IIS ` -VMName myVM ` -Publisher Microsoft.Compute ` -ExtensionType CustomScriptExtension ` -TypeHandlerVersion 1.4 ` -SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}' ` -Location ChinaEast
测试网站
使用 Get-AzureRmPublicIPAddress 获取负载均衡器的公共 IP 地址。 以下示例获取前面创建的“myPublicIP”的 IP 地址:PowerShell复制
Get-AzureRmPublicIPAddress ` -ResourceGroupName myResourceGroupAutomate ` -Name myPublicIP | select IpAddress
然后,可将公共 IP 地址输入 Web 浏览器中。 网站随即显示,其中包括负载均衡器将流量分发到的 VM 的主机名,如下例所示:
后续步骤
在本教程中,你在 VM 上自动执行了 IIS 安装。 你已了解如何:使用自定义脚本扩展安装 IIS
创建使用自定义脚本扩展的 VM
在应用扩展后查看正在运行的 IIS 站点
转到下一教程,了解如何创建自定义 VM 映像。
立即访问http://market.azure.cn
相关文章推荐
- 如何在 Azure 中自定义 Windows 虚拟机
- 如何在 Azure 中标记 Windows 虚拟机
- 如何在 Azure 中的经典 Windows 虚拟机上设置终结点
- 如何在 Azure 中的经典 Windows 虚拟机上设置终结点
- 如何使用 Packer 在 Azure 中创建 Windows 虚拟机映像
- 如何在 Azure 中的经典 Windows 虚拟机上设置终结点
- 如何在 Azure 中均衡 Windows 虚拟机负载以创建具有高可用性的应用程序
- 如何在 Azure 中均衡 Windows 虚拟机负载以创建具有高可用性的应用程序
- 如何在 Azure 中标记 Windows 虚拟机
- 如何将同一云服务下的虚拟机从经典部署模型迁移到 Azure Resource Manager
- 如何在Win7等系统虚拟机下安装Windows 8
- 如何创建自定义Sharepoint 应用程序页 (Creating an Application Page in Windows SharePoint Services 3.0)
- 如何禁用 Azure 虚拟机的日期时间同步
- 如何将同一 VNET 下的虚拟机从经典部署模型迁移到 Azure Resource Manager
- 云计算之路-试用Azure:制作虚拟机自定义镜像
- Azure 中 Windows 虚拟机的大小
- [转]Writing Custom Entries to the Audit Log in Windows SharePoint Services 3.0(如何记录自定义审核日志)
- Windows上如何玩非阻塞的connect?---让程序员自定义connect函数的超时时间
- 如何在 Windows NT 和 Windows 2000 中使用自定义页面大小打印
- 和Steve, Wade 一起学习如何使用Windows Azure Startup Tasks