Installera och uppdatera program i VM-skalningsuppsättningar
När du distribuerar ett program i en skalningsuppsättning behöver du en mekanism som uppdaterar programmet konsekvent över alla instanser i skalningsuppsättningen. Du kan uppnå det här resultatet med hjälp av ett tillägg för anpassat skript.
I scenariot med fraktföretaget måste du snabbt kunna distribuera uppdateringar till appen och minimera 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 hur du använder ett tillägg för anpassat skript för att uppdatera ett program som körs på en skalningsuppsättning.
Vad är ett tillägg för anpassat skript i Azure?
Ett tillägg för anpassat skript i Azure laddar ned och kör ett skript på en virtuell Azure-dator. Den 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 visas en anpassad skriptkonfiguration som laddar ned ett program från en lagringsplats i GitHub och installerar det 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 på 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 kan referera till ett uppdaterat distributionsskript och sedan tillämpa tillägget på din skalningsuppsättning igen. 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. 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 över 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