練習 - 在虛擬機器擴展集中更新應用程式
在貨運公司案例中,您透過建立虛擬機器擴展集來安裝 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
,您將會手動套用所有 VM 變更。 由於原則是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
在您的網頁瀏覽器中,瀏覽至擴展集負載平衡器的公用位址。 確認您看到 [This is the updated app installed on the Virtual Machine Scale Set] \(這是在虛擬機器擴展集上安裝的已更新應用程式\) 這則訊息。