Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Om du vill köra program på VM-instanser i en skalsats måste du först installera programkomponenterna och nödvändiga filer. I en tidigare handledning lärde du dig hur du skapar och använder en anpassad VM-avbildning för att driftsätta dina VM-instanser. Den här anpassade avbildningen inkluderade manuella programinstallationer och konfigurationer. Du kan också automatisera installationen av program till en skalningsuppsättning när varje VM-instans har distribuerats eller uppdatera ett program som redan körs på en skalningsuppsättning. I den här handledningen lär du dig hur man:
- Installera program automatiskt i din skalningsuppsättning
- Använda azure-tillägget för anpassade skript
- Uppdatera ett program som körs i en skalningsuppsättning
Om du inte har något Azure-konto skapar du ett kostnadsfritt konto innan du börjar.
Förutsättningar
- Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Kom igång med Azure Cloud Shell. 
- Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör på Windows eller macOS, överväg att köra Azure CLI i en Docker-container. För mer information, se Hur man kör 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. För att avsluta autentiseringsprocessen, följ stegen som visas i din terminal. Andra inloggningsalternativ finns i Autentisera till Azure med Azure CLI. 
- När du blir uppmanad, installera Azure CLI-tillägget vid första användning. Mer information om tillägg finns i Använda och hantera tillägg med Azure CLI. 
- Kör az version för att ta reda på 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 Azure Custom Script Extension?
Tillägget för anpassat skript laddar ned och kör skript på virtuella Azure-datorer. Det här tillägget är användbart för konfiguration efter distribution, programvaruinstallation eller någon annan konfigurations-/hanteringsuppgift. Skript kan laddas ned från Azure Storage eller GitHub eller tillhandahållas till Azure-portalen vid tilläggskörning.
Tillägget Anpassat skript integreras med Azure Resource Manager-mallar och kan även 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.
Om du vill använda tillägget för anpassat skript med Azure CLI skapar du en JSON-fil som definierar vilka filer som ska hämtas och vilka kommandon som ska köras. Dessa JSON-definitioner kan återanvändas mellan distributioner av skalningsuppsättningar för att tillämpa konsekventa programinstallationer.
Skapa definition för anpassat skripttillägg
För att se tillägget för anpassade skript i praktiken, låt oss skapa en skalningsuppsättning som installerar NGINX webbserver och matar ut värdnamnet på skalningsuppsättningens VM-instans. Följande definition för anpassat skripttillägg laddar ned ett exempelskript från GitHub, installerar de paket som krävs och skriver sedan värdnamnet för den virtuella datorns instans till en grundläggande HTML-sida.
I det aktuella gränssnittet skapar du en fil med namnet customConfig.json och klistrar in följande konfiguration. Skapa till exempel filen i Cloud Shell som inte finns på den lokala datorn. Du kan använda valfri redigerare. 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'
}
Anmärkning
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 ett skalningsset
Viktigt!
Från och med november 2023 kommer VM-skalningsuppsättningar som skapats med PowerShell och Azure CLI som standard använda flexibelt 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 Brytande ändring 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 och genererar SSH-nycklar om de inte 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 tillägget för anpassat skript
Använd konfigurationen för anpassat skripttillägg på de virtuella datorerna i din skalningsuppsättning med az vmss extension set. I följande exempel tillämpas customConfig.json konfigurationen på myScaleSet VM-instanserna 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
Försiktighet
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 skaleringsuppsättningar
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 se webbservern i praktiken 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 skapats som en del av skalningsuppsättningen:
az network public-ip show \
  --resource-group myResourceGroup \
  --name myScaleSetLBPublicIP \
  --query [ipAddress] \
  --output tsv
Ange lastbalanserarens offentliga IP-adress i en webbläsare. Lastbalanseraren distribuerar trafik till en av dina VM-instanser, som du ser i följande exempel:
               
              
            
Låt webbläsaren vara ö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 Uppgraderingsprinciper för virtuella maskiners skaluppsättningar.
az vmss update \
    --name myScaleSet \
    --resource-group myResourceGroup \
    --set upgradePolicy.mode=automatic
Uppdatera appdistribuering
I det aktuella gränssnittet skapar du en fil med namnet customConfigv2.json och klistrar in följande konfiguration. Den här definitionen kör en uppdaterad v2-version av programinstallationsskriptet:
{
  "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. Den 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
Ta bort skalningsuppsättningen och ytterligare resurser genom att ta 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 ytterligare en uppmaning om att göra det.
az group delete --name myResourceGroup --no-wait --yes
Nästa steg
I den här handledningen har du lärt dig hur du automatiskt installerar och uppdaterar program i din skalningsuppsättning med Azure CLI.
- Installera program automatiskt i din skalningsuppsättning
- Använda azure-tillägget för anpassade skript
- Uppdatera ett program som körs i en skalningsuppsättning
Gå vidare till nästa handledning för att lära dig hur du kan skala upp din skalningsuppsättning automatiskt.
