Installera och uppdatera program i Virtual Machine Scale Sets

Slutförd

När du distribuerar ett program i en skalningsuppsättning behöver du en mekanism som uppdaterar ditt program konsekvent över alla instanser i skalningsuppsättningen. Du kan uppnå det här resultatet med hjälp av ett anpassat skripttillägg.

I scenariot med fraktföretaget måste du snabbt kunna distribuera uppdateringar av appen med minsta möjliga störningar för slutanvändarna. Ett tillägg för ett anpassat skript är en utmärkt lösning.

I den här lektionen får du lära dig att använda ett tillägg för ett anpassat skript till att uppdatera en app som körs i en skalningsuppsättning.

Vad är ett tillägg för ett anpassat skript i Azure?

Ett tillägg för ett anpassat skript i Azure laddar ned och kör ett skript på en virtuell Azure-dator. Det kan automatisera samma uppgifter på alla virtuella datorer i en skalningsuppsättning.

Lagra dina anpassade skript i Azure Storage eller GitHub. Om du vill lägga till ett anpassat skript för en virtuell dator kan du använda Azure-portalen. Om du vill köra anpassade skript i en mallstyrd distribuering kombinerar du ett tillägg för ett anpassat skript med Azure Resource Manager-mallar.

Installera en app i en skalningsuppsättning med ett tillägg för ett anpassat skript

Om du vill använda ett anpassat skripttillägg med Azure CLI skapar du en konfigurationsfil som definierar vilka filer som ska hämtas och vilka kommandon som ska köras. Filen är i JSON-format.

I följande exempel ser du en konfiguration av ett anpassat skript som laddar ned en app från en lagringsplats i GitHub och installerar den på en värdinstans genom att köra ett skript med namnet custom_application_v1.sh:

# yourConfigV1.json 
{
  "fileUris": ["https://raw.githubusercontent.com/yourrepo/master/custom_application_v1.sh"],
  "commandToExecute": "./custom_application_v1.sh"
}

Om du vill distribuera den här konfigurationen i skalningsuppsättningen använder du ett anpassat skripttillägg. Följande kod visar hur du skapar ett anpassat skripttillägg för en VM-skalningsuppsättning med hjälp av Azure CLI. Med det här kommandot installerar du den nya appen på de virtuella datorerna i skalningsuppsättningen:

az vmss extension set \
  --publisher Microsoft.Azure.Extensions \
  --version 2.0 \
  --name CustomScript \
  --resource-group myResourceGroup \
  --vmss-name yourScaleSet \
  --settings @yourConfigV1.json

Uppdatera en app i en skalningsuppsättning med ett tillägg för ett anpassat skript

Du kan använda ett anpassat skripttillägg för att uppdatera en befintlig app i en VM-skalningsuppsättning. Du refererar till ett uppdaterat distributionsskript och använder sedan tillägget på nytt i din skalningsuppsättning. JSON-kodfragmentet nedan visar till exempel en konfiguration som hämtar en ny version av en app och installerar den:

# yourConfigV2.json
{
  "fileUris": ["https://raw.githubusercontent.com/yourrepo/master/custom_application_v2.sh"],
  "commandToExecute": "./custom_application_v2.sh"
}

Du kan använda samma az vmss extension set kommando som visades tidigare för att distribuera den uppdaterade appen, men den här gången refererar du till den nya konfigurationsfilen:

az vmss extension set \
    --publisher Microsoft.Azure.Extensions \
    --version 2.0 \
    --name CustomScript \
    --resource-group yourResourceGroup \
    --vmss-name yourScaleSet \
    --settings @yourConfigV2.json

De virtuella datorerna uppdateras enligt skalningsuppsättningens uppgraderingsprincip. Du anger den här principen när du först skapar skalningsuppsättningen. Uppgraderingsprincipen kan ha något av följande tre lägen:

  • Automatisk: Skalningsuppsättningen definierar inte när de virtuella datorerna uppgraderas. De kan uppdateras samtidigt, vilket skulle orsaka avbrott i tjänsten.
  • Rullande: Skalningsuppsättningen distribuerar uppdateringen i batchar till de virtuella datorerna i skalningsuppsättningen. Du kan lägga in en paus som minimerar eller eliminerar avbrotten i tjänsten. I det här läget kan datorer i skalningsuppsättningen köra olika versioner av appen under en kort tid. Om du vill använda det här läget måste du antingen lägga till en hälsoavsökning i skalningsuppsättningen eller använda tillägget för appars hälsotillstånd i skalningsuppsättningen.
  • Manuell: Befintliga virtuella datorer i skalningsuppsättningen uppdateras inte. Alla ändringar måste göras manuellt. Det här är standardläget.

Om du vill ange uppgraderingsprincipläget när du etablerar en VM-skalningsuppsättning kan du använda alternativet upgrade-policy-mode . I följande kodexempel används Azure CLl:

az vmss create \
  --resource-group MyResourceGroup \
  --name MyScaleSet \
  --image Ubuntu2204 \
  --upgrade-policy-mode automatic \
  --admin-username azureuser \
  --generate-ssh-keys