Självstudie: Installera program i VM-skalningsuppsättningar med Azure CLI
Om du vill köra program på virtuella datorinstanser i en skalningsuppsättning, måste du först installera programkomponenter och nödvändiga filer. I en föregående självstudie fick du lära dig hur du skapar och använder en anpassad virtuell datoravbildning för att distribuera dina virtuella datorinstanser. Den här anpassade avbildningen inkluderade programinstallationer och konfigurationer. Du kan också automatisera installationen av programmen till en skalningsuppsättning efter att varje virtuell datorinstans distribueras, eller uppdatera ett program som redan körs på en skalningsuppsättning. I den här självstudiekursen får du lära du dig att:
- Installerar automatiskt program till din skalningsuppsättning
- Använd det anpassade Azure-skripttillägget
- Uppdatera ett program som körs på en skalningsuppsättning
Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
Förutsättningar
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Snabbstart för Bash i Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör i Windows eller macOS kan du köra Azure CLI i en Docker-container. Mer information finns i Så här kör du Azure CLI i en Docker-container.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Andra inloggningsalternativ finns i Logga in med Azure CLI.
När du uppmanas att installera Azure CLI-tillägget vid första användningen. Mer information om tillägg finns i Använda tillägg med Azure CLI.
Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
- Den här artikeln kräver version 2.0.29 eller senare av Azure CLI. Om du använder Azure Cloud Shell är den senaste versionen redan installerad.
Vad är det anpassade Azure-skripttillägget?
Det anpassade skripttillägget laddar ner och kör skript på virtuella Azure-datorer. Det här tillägget är användbart för konfiguration efter distribution, programvaruinstallation eller andra konfigurerings-/hanteringsuppgifter. Skript kan laddas ned från Azure Storage eller GitHub, eller tillhandahållas via Azure Portal vid tilläggskörning.
Det anpassade skripttillägget integreras med Azure Resource Manager-mallar och kan också användas med Azure CLI, Azure PowerShell, Azure-portalen eller REST API:et. Mer information finns i översikten över tillägget för anpassat skript.
För att använda det anpassade skripttillägget med Azure CLI, skapar du en JSON-fil som definierar vilka filer som ska hämtas och ger den kommandot att köras. Dessa JSON-definitioner kan återanvändas i distributioner av skalningsuppsättningar för att tillämpa konsekventa programinstallationer.
Skapa en anpassad skripttilläggsdefinition
Om du vill se hur det anpassade skripttillägget funkar, skapar du en skalningsuppsättning som installerar NGINX-webbservern och matar ut värddatornamnet för skalningsuppsättningens virtuella datorinstans. Följande anpassade skripttilläggsdefinition laddar ner ett exempelskript från GitHub, installerar nödvändiga paket och skriver sedan den virtuella datorinstansens värddatornamn till en grundläggande HTML-sida.
I ditt nuvarande gränssnitt, skapar du en fil med namnet customConfig.json och klistrar in följande konfiguration. Skapa till exempel inte filen i Cloud Shell på din lokala dator. Du kan använda vilket redigeringsprogram som helst. I den här självstudien använder vi Vi. Angevi
i Cloud Shell. Klistra in JSON nedan i redigeraren och skriv :w customConfig.json
.
{
"fileUris": ["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate_nginx.sh"],
"commandToExecute": './automate_nginx.sh'
}
Kommentar
Du kan behöva invertera användningen av enkla (') och dubbla citattecken (") i JSON-blocket om du bestämmer dig för att referera till JSON direkt (i stället för att referera till customConfig.json-filen ) i parametern --settings nedan.
Skapa en skalningsuppsättning
Viktigt!
Från och med november 2023 kommer VM-skalningsuppsättningar som skapats med PowerShell och Azure CLI som standard att vara flexibla orkestreringsläge om inget orkestreringsläge har angetts. Mer information om den här ändringen och vilka åtgärder du bör vidta finns i Icke-bakåtkompatibla ändringar för VMSS PowerShell/CLI-kunder – Microsoft Community Hub
Skapa en resursgrupp med az group create. I följande exempel skapas en resursgrupp med namnet myResourceGroup på platsen eastus:
az group create --name myResourceGroup --location eastus
Skapa nu en VM-skalningsuppsättning med az vmss create. I följande exempel skapas en skalningsuppsättning med namnet myScaleSet som genererar SSH-nycklar om det inte redan finns:
az vmss create \
--resource-group myResourceGroup \
--name myScaleSet \
--image Ubuntu2204 \
--orchestration-mode Flexible \
--admin-username azureuser \
--generate-ssh-keys
Det tar några minuter att skapa och konfigurera alla skalningsuppsättningsresurser och virtuella datorer.
Tillämpa det anpassade skripttillägget
Tillämpa konfigurationen för det anpassade skripttillägget till de virtuella datorinstanserna i din skalningsuppsättning med az vmss extension set. Följande exempel tillämpar konfigurationen customConfig.json till de virtuella datorinstanserna myScaleSet i resursgruppen med namnet myResourceGroup:
az vmss extension set \
--publisher Microsoft.Azure.Extensions \
--version 2.0 \
--name CustomScript \
--resource-group myResourceGroup \
--vmss-name myScaleSet \
--settings customConfig.json
Varning
Filnamn är skiftlägeskänsliga. Använd det exakta filnamnet som anges i dessa instruktioner för att undvika fel.
Tillämpa tillägget på befintliga skalningsuppsättningsinstanser
Uppgradera alla instanser för att tillämpa det anpassade skriptet. Uppgraderingen kan ta några minuter.
az vmss update-instances --resource-group myResourceGroup --name myScaleSet --instance-ids "*"
Tillåt trafik till port 80
För att trafik ska kunna flöda genom lastbalanseraren till de virtuella datorerna måste standardnätverkssäkerhetsgruppen uppdateras.
az network nsg rule create --name AllowHTTP --resource-group myResourceGroup --nsg-name myScaleSetNSG --access Allow --priority 1010 --destination-port-ranges 80
Testa din skalningsuppsättning
Om du vill testa webbservern hämtar du den offentliga IP-adressen för lastbalanseraren med az network public-ip show. I följande exempel hämtas IP-adressen för myScaleSetLBPublicIP som skapas som en del av skalningsuppsättningen:
az network public-ip show \
--resource-group myResourceGroup \
--name myScaleSetLBPublicIP \
--query [ipAddress] \
--output tsv
Skriv den offentliga IP-adressen för lastbalanseraren i en webbläsare. Lastbalanseraren distribuerar trafik till en av dina VM-instanser enligt följande exempel:
Lämna webbläsaren öppen så att du kan se en uppdaterad version i nästa steg.
Ändra uppgraderingsprincipen
I föregående avsnitt behövdes en manuell uppgradering för att tillämpa det uppdaterade programmet på alla skalningsuppsättningsinstanser. Om du vill aktivera att uppdateringar tillämpas automatiskt på alla befintliga skalningsuppsättningsinstanser uppdaterar du uppgraderingsprincipen från manuell till automatisk. Mer information om uppgraderingsprinciper finns i Uppgradera principer för vm-skalningsuppsättningar.
az vmss update \
--name myScaleSet \
--resource-group myResourceGroup \
--set upgradePolicy.mode=automatic
Uppdatera appdistributionen
I ditt nuvarande gränssnitt, skapar du en fil med namnet cusomConfigv2.json och klistrar in följande konfiguration. Den här definitionen kör en uppdaterad v2-version av installationsskriptet för programmet:
{
"fileUris": ["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate_nginx_v2.sh"],
"commandToExecute": "./automate_nginx_v2.sh"
}
Använd konfigurationen för anpassat skripttillägg på skalningsuppsättningen igen med az vmss extension set. customConfigv2.json används för att tillämpa den uppdaterade versionen av programmet:
az vmss extension set \
--publisher Microsoft.Azure.Extensions \
--version 2.0 \
--name CustomScript \
--resource-group myResourceGroup \
--vmss-name myScaleSet \
--settings @customConfigv2.json
Eftersom skalningsuppsättningen nu använder en automatisk uppgraderingsprincip tillämpas det uppdaterade programmet automatiskt på befintliga skalningsuppsättningsinstanser. Uppdatera webbläsaren för att se det uppdaterade programmet.
Rensa resurser
Om du vill ta bort din skalningsuppsättning och ytterligare resurser så tar du bort resursgruppen och alla dess resurser med az group delete. Parametern --no-wait
återför kontrollen till kommandotolken utan att vänta på att uppgiften slutförs. Parametern --yes
bekräftar att du vill ta bort resurserna utan att tillfrågas ytterligare en gång.
az group delete --name myResourceGroup --no-wait --yes
Nästa steg
I den här självstudien fick du lära dig hur du automatiskt installerar och uppdaterar program på din skalningsuppsättning med Azure CLI:
- Installerar automatiskt program till din skalningsuppsättning
- Använd det anpassade Azure-skripttillägget
- Uppdatera ett program som körs på en skalningsuppsättning
Gå vidare till nästa självstudie för att lära dig hur du automatiskt skalar din skalningsuppsättning.