教程 - 使用自定义脚本扩展将应用程序部署到Azure中的Windows虚拟机

适用于: ✔️ Windows ✔️ 灵活规模集 ✔️ 统一规模集

若要快速且一致地配置虚拟机(VM),可以使用适用于 Windows 的自定义脚本扩展。 在本教程中,您将学习如何:

  • 使用自定义脚本扩展安装 IIS。
  • 创建使用自定义脚本扩展的 VM。
  • 应用扩展后,查看正在运行的 IIS 站点。

启动 Azure 本地 PowerShell

打开 Azure Powershell 控制台,并使用管理员特权运行以下脚本。

自定义脚本扩展概述

自定义脚本扩展在 Azure VM 上下载和执行脚本。 此扩展适用于部署后配置、软件安装或任何其他配置或管理任务。 可以从Azure存储或GitHub下载脚本,也可以在扩展运行时向Azure门户提供脚本。

自定义脚本扩展与Azure 资源管理器模板集成,可以使用 Azure CLI、PowerShell、Azure 门户或Azure虚拟机 REST API 运行。

可以将自定义脚本扩展用于 Linux 和 Windows VM。

创建虚拟机

使用 Get-Credential 为 VM 设置管理员用户名和密码:

Connect-AzAccount -Environment AzureChinaCloud
$cred = Get-Credential

现在可以使用 New-AzVM 创建 VM。 以下示例在 ChinaEast2 位置创建名为 myVM 的 VM。 如果它们尚不存在,则会创建资源组 myResourceGroupAutomate 和支持的网络资源。 为了允许 Web 流量,该 cmdlet 还会打开端口 80

New-AzVm `
    -ResourceGroupName "myResourceGroupAutomate" `
    -Name "myVM" `
    -Location "China East 2" `
    -VirtualNetworkName "myVnet" `
    -SubnetName "mySubnet" `
    -SecurityGroupName "myNetworkSecurityGroup" `
    -PublicIpAddressName "myPublicIpAddress" `
    -OpenPorts 80 `
    -Credential $cred

创建资源和 VM 需要几分钟时间。

自动安装 IIS

使用 Set-AzVMExtension 安装自定义脚本扩展。 该扩展运行 powershell Add-WindowsFeature Web-Server 以安装 IIS Web 服务器,然后更新 Default.htm 页以显示 VM 的主机名:

Set-AzVMExtension -ResourceGroupName "myResourceGroupAutomate" `
    -ExtensionName "IIS" `
    -VMName "myVM" `
    -Location "ChinaEast2" `
    -Publisher Microsoft.Compute `
    -ExtensionType CustomScriptExtension `
    -TypeHandlerVersion 1.8 `
    -SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}'

测试网站

使用 Get-AzPublicIPAddress 获取负载均衡器的公共 IP 地址。 以下示例获取前面创建的 IP 地址 myPublicIPAddress

Get-AzPublicIPAddress `
    -ResourceGroupName "myResourceGroupAutomate" `
    -Name "myPublicIPAddress" | select IpAddress

然后,可以在 Web 浏览器中输入公共 IP 地址。 将显示该网站,包括负载均衡器将流量分发到的 VM 的主机名,如以下示例所示:

Web 浏览器中公共 IP 地址的屏幕截图。

后续步骤

在本教程中,将在 VM 上自动安装 IIS。 你已了解如何执行以下操作:

  • 使用自定义脚本扩展安装 IIS。
  • 创建使用自定义脚本扩展的 VM。
  • 应用扩展后,查看正在运行的 IIS 站点。

转到下一教程,了解如何创建自定义 VM 映像。