练习 - 在虚拟机规模集中更新应用程序
在运输公司场景中,通过创建虚拟机规模集安装了一个 Web 应用程序。 现在需要更新该 Web 应用并跨规模集中的所有虚拟机 (VM) 安装一个新版本。
必须确保在推出更新期间系统仍然可用。 确保可用性的一种好方法是使用自定义脚本扩展来执行更新。 在虚拟机规模集中应用此脚本。 规模集一次只将该更新应用到一个 VM,其他 VM 仍然保持启动和运行状态。
本练习中,请使用自定义脚本扩展来推出新版本的 Web 应用。 请编辑 nginx 服务器提供的消息。 可使用此相同方法进行较大型的更新。
注意
本练习是可选的。 如果还没有 Azure 帐户,可以阅读说明,了解如何使用 REST API 检索指标。
如果想要完成此练习,但没有 Azure 订阅或不想使用自己的帐户,请在开始之前创建免费帐户。
使用自定义脚本扩展部署更新
在 Azure 门户中,打开 Cloud Shell 并运行以下命令,查看规模集的当前升级策略:
az vmss show \ --name webServerScaleSet \ --resource-group myResourceGroup \ --query upgradePolicy.mode
验证升级策略是否设置为
Automatic
。 在第一个实验室中创建规模集时指定了该策略。 如果策略为Manual
,则将手动应用任何虚拟机更改。 由于策略为Automatic
,因此可使用自定义脚本扩展并让规模集执行更新。运行以下命令,应用更新脚本:
az vmss extension set \ --publisher Microsoft.Azure.Extensions \ --version 2.0 \ --name CustomScript \ --vmss-name webServerScaleSet \ --resource-group myResourceGroup \ --settings "{\"commandToExecute\": \"echo This is the updated app installed on the Virtual Machine Scale Set ! > /var/www/html/index.html\"}"
测试更新的 Web 应用程序
运行以下命令,检索规模集负载均衡器的 IP 地址:
az network public-ip show \ --name webServerScaleSetLBPublicIP \ --resource-group myResourceGroup \ --output tsv \ --query ipAddress
在 Web 浏览器中,转到规模集负载均衡器的公共地址。 验证是否显示“这是虚拟机规模集上安装的已更新应用!”消息。