Distribuera ditt program på VM-skalningsuppsättningar

Kommentar

Det här dokumentet beskriver vm-skalningsuppsättningar som körs i enhetlig orkestreringsläge. Vi rekommenderar att du använder flexibel orkestrering för nya arbetsbelastningar. Mer information finns i Orkestreringslägen för VM-skalningsuppsättningar i Azure.

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. Den här artikeln beskriver hur du skapar en anpassad VM-avbildning för instanser i en skalningsuppsättning eller kör installationsskript automatiskt på befintliga VM-instanser. Du får också lära dig hur du hanterar program- eller OS-uppdateringar i en skalningsuppsättning.

Skapa en anpassad VM-avbildning

När du använder en av Azure-plattformsbilderna för att skapa instanserna i skalningsuppsättningen installeras eller konfigureras ingen ytterligare programvara. Du kan automatisera installationen av dessa komponenter, men det lägger till den tid det tar att etablera virtuella datorinstanser till dina skalningsuppsättningar. Om du tillämpar många konfigurationsändringar på de virtuella datorinstanserna finns det hanteringskostnader med dessa konfigurationsskript och uppgifter.

Om du vill minska konfigurationshanteringen och tiden för att etablera en virtuell dator kan du skapa en anpassad VM-avbildning som är redo att köra ditt program så snart en instans etableras i skalningsuppsättningen. Mer information om hur du skapar och använder en anpassad VM-avbildning med en skalningsuppsättning finns i följande självstudier:

Installera en app med tillägget för anpassat skript

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. Mer information om hur du installerar en app med ett tillägg för anpassat skript finns i följande självstudier:

Installera en app på en virtuell Windows-dator med PowerShell DSC

PowerShell Desired State Configuration (DSC) är en hanteringsplattform för att definiera konfigurationen av måldatorer. DSC-konfigurationer definierar vad som ska installeras på en dator och hur värden ska konfigureras. En LCM-motor (Local Configuration Manager) körs på varje målnod som bearbetar begärda åtgärder baserat på push-konfigurationer.

Med PowerShell DSC-tillägget kan du anpassa virtuella datorinstanser i en skalningsuppsättning med PowerShell. Följande exempel:

DSC-tillägget tillämpas på myScaleSet VM-instanserna i resursgruppen med namnet myResourceGroup. Ange dina egna namn på följande sätt:

# Define the script for your Desired Configuration to download and run
$dscConfig = @{
  "wmfVersion" = "latest";
  "configuration" = @{
    "url" = "https://github.com/Azure-Samples/compute-automation-configurations/raw/master/dsc.zip";
    "script" = "configure-http.ps1";
    "function" = "WebsiteTest";
  };
}

# Get information about the scale set
$vmss = Get-AzVmss `
                -ResourceGroupName "myResourceGroup" `
                -VMScaleSetName "myScaleSet"

# Add the Desired State Configuration extension to install IIS and configure basic website
$vmss = Add-AzVmssExtension `
    -VirtualMachineScaleSet $vmss `
    -Publisher Microsoft.Powershell `
    -Type DSC `
    -TypeHandlerVersion 2.24 `
    -Name "DSC" `
    -Setting $dscConfig

# Update the scale set and apply the Desired State Configuration extension to the VM instances
Update-AzVmss `
    -ResourceGroupName "myResourceGroup" `
    -Name "myScaleSet"  `
    -VirtualMachineScaleSet $vmss

Om uppgraderingsprincipen på skalningsuppsättningen är manuell uppdaterar du dina vm-instanser med Update-AzVmssInstance. Den här cmdleten tillämpar den uppdaterade skalningsuppsättningskonfigurationen på de virtuella datorinstanserna och installerar ditt program.

Installera en app på en virtuell Linux-dator med cloud-init

Cloud-init är ett vanligt sätt att anpassa en virtuell Linux-dator när den startas för första gången. Du kan använda cloud-init till att installera paket och skriva filer eller för att konfigurera användare och säkerhet. Eftersom cloud-init körs under hela den ursprungliga startprocessen finns det inga fler steg eller obligatoriska agenter att tillämpa för konfigurationen.

Cloud-init fungerar med olika distributioner. Du använder till exempel inte apt-get install eller yum install när du vill installera ett paket. I stället definierar du en lista med paket att installera. Cloud-init använder automatiskt rätt pakethanteringsverktyg för den distribution du valt.

Mer information, inklusive ett exempel på en cloud-init.txt-fil , finns i Använda cloud-init för att anpassa virtuella Azure-datorer.

Om du vill skapa en skalningsuppsättning och använda en cloud-init-fil lägger du till parametern --custom-data i kommandot az vmss create och anger namnet på en cloud-init-fil. I följande exempel skapas en skalningsuppsättning med namnet myScaleSet i myResourceGroup och konfigurerar virtuella datorinstanser med en fil med namnet cloud-init.txt. Ange dina egna namn på följande sätt:

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

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --image Ubuntu2204 \
  -–orchestration-mode uniform \
  --upgrade-policy-mode automatic \
  --custom-data cloud-init.txt \
  --admin-username azureuser \
  --generate-ssh-keys

Installera program med OS-uppdateringar

När nya os-versioner är tillgängliga kan du använda eller skapa en ny anpassad avbildning och distribuera OS-uppgraderingar till en skalningsuppsättning. Varje VM-instans uppgraderas till den senaste avbildningen som du anger. Du kan använda en anpassad avbildning med programmet förinstallerat, tillägget för anpassat skript eller PowerShell DSC för att få programmet automatiskt tillgängligt när du utför uppgraderingen. Du kan behöva planera för programunderhåll när du utför den här processen för att säkerställa att det inte finns några problem med versionskompatibilitet.

Om du använder en anpassad VM-avbildning med programmet förinstallerat kan du integrera programuppdateringarna med en distributionspipeline för att skapa de nya avbildningarna och distribuera OS-uppgraderingar över skalningsuppsättningen. Med den här metoden kan pipelinen hämta de senaste programversionerna, skapa och verifiera en VM-avbildning och sedan uppgradera de virtuella datorinstanserna i skalningsuppsättningen. Om du vill köra en distributionspipeline som skapar och distribuerar programuppdateringar över anpassade VM-avbildningar kan du skapa en Packer-avbildning och distribuera med Azure DevOps Services, eller använda en annan plattform som Spinnaker eller Jenkins.

Nästa steg

När du skapar och distribuerar program till dina skalningsuppsättningar kan du granska designöversikten för skalningsuppsättningar. Mer information om hur du hanterar din skalningsuppsättning finns i Använda PowerShell för att hantera din skalningsuppsättning.