Dela via


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

  • 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:

Standardwebbsida i NGINX

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.

Uppdaterad webbsida i NGINX

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.