Självstudie: Installera program i VM-skalningsuppsättningar med Azure CLI

Gäller för: ✔️ Virtuella Linux-datorer:heavy_check_mark: Windows virtuella datorer:heavy_check_mark: Enhetliga skalningsuppsättningar

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 guiden får du lära du dig hur man:

  • 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-prenumerationkan du skapa ett kostnads fritt konto innan du börjar.

Förutsättningar

  • Använd bash-miljön i Azure Cloud Shell.

    Starta Cloud Shell i ett nytt fönster

  • Om du vill kan du i stället installera Azure CLI för att köra CLI-referenskommandon.

    • 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. Fler inloggningsalternativ finns i Logga in med Azure CLI.

    • När du uppmanas till det installerar du Azure CLI-tillägg vid första användning. 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 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. Ange sensible-editor customConfig.json i Cloud Shell för att skapa filen och visa en lista över tillgängliga redigeringsprogram.

{
  "fileUris": ["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate_nginx.sh"],
  "commandToExecute": "./automate_nginx.sh"
}

Varning

Du kan behöva invertera användningen av enkla () och dubbla citattecken (") i JSON-blocket om du vill referera till JSON direkt (i stället för att referera till customConfig.js på filen) i parametern --settings nedan.

Skapa en skalningsuppsättning

Skapa en resursgrupp med az group create. I följande exempel skapas en resursgrupp med namnet myResourceGroupplatsen eastus:

az group create --name myResourceGroup --location eastus

Skapa nu en skalningsuppsättning för en virtuell dator 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 UbuntuLTS \
  --upgrade-policy-mode automatic \
  --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

Varje virtuell datorinstans i skalningsuppsättningen laddar ned och kör skriptet från GitHub. I ett mer avancerat exempel, kan flera programkomponenter och filer installeras. Om skalningsuppsättningen skalas upp, använder de nya virtuella datorinstanserna automatiskt samma definition för anpassade skripttillägg och installerar det program som krävs.

Testa din skalningsuppsättning

Skapa en regel för lastbalanserare med az network lb rule create för att tillåta trafik till webbservern. I följande exempel skapas en regel med namnet myLoadBalancerRuleWeb:

az network lb rule create \
  --resource-group myResourceGroup \
  --name myLoadBalancerRuleWeb \
  --lb-name myScaleSetLB \
  --backend-pool-name myScaleSetLBBEPool \
  --backend-port 80 \
  --frontend-ip-name loadBalancerFrontEnd \
  --frontend-port 80 \
  --protocol tcp

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.

Uppdatera appdistributionen

Under livscykeln för en skalningsuppsättning, kan du behöva distribuera en uppdaterad version av ditt program. Med det anpassade skripttillägget, kan du referera till ett uppdaterat distributionsskript och sedan tillämpa tillägget till din skalningsuppsättning igen. När skalningsuppsättningen skapades i ett tidigare steg, --upgrade-policy-mode var inställd på automatisk. Den här inställningen låter virtuella datorinstanser i skalningsuppsättningen att automatiskt uppdatera och tillämpa den senaste versionen av ditt program.

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"
}

Tillämpa konfigurationen för det anpassade skripttillägget till de virtuella datorinstanserna i din skalningsuppsättning 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

Alla virtuella datorinstanser i skalningsuppsättningen uppdateras automatiskt med den senaste versionen av exempelwebbsidan. Uppdatera webbplatsen i webbläsaren om du vill se den uppdaterade versionen:

Uppdaterad webbsida i NGINX

Rensa resurser

Om du vill ta bort din skalningsuppsättning och ytterligare resurser 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.