Uw toepassing implementeren op virtuele-machineschaalsets

Van toepassing op: ✔️ Virtuele Linux-heavy_check_mark: Windows-VM's ✔️ Uniforme schaalsets

Als u toepassingen wilt uitvoeren op de exemplaren van een virtuele machine (VM) in een schaalset, moet u eerst de toepassingsonderdelen en de vereiste bestanden installeren. In dit artikel worden manieren beschreven voor het bouwen van een aangepaste VM-installatie afbeelding voor exemplaren in een schaalset of het automatisch uitvoeren van installatiescripts op bestaande VM-exemplaren. U leert ook hoe u toepassings- of besturingssysteemupdates beheert in een schaalset.

Een aangepaste VM-afbeelding bouwen

Wanneer u een van de installatieprogramma's van het Azure-platform gebruikt om de exemplaren in uw schaalset te maken, wordt er geen extra software geïnstalleerd of geconfigureerd. U kunt de installatie van deze onderdelen automatiseren, maar dat voegt de tijd toe die nodig is om VM-exemplaren in terichten voor uw schaalsets. Als u veel configuratiewijzigingen op de VM-exemplaren wilt toepassen, is er beheeroverhead bij deze configuratiescripts en -taken.

Als u het configuratiebeheer en de tijd voor het inrichten van een VM wilt verminderen, kunt u een aangepaste VM-installatiebestand maken dat klaar is om uw toepassing uit te voeren zodra er een exemplaar is ingericht in de schaalset. Zie de volgende zelfstudies voor meer informatie over het maken en gebruiken van een aangepaste VM-afbeelding met een schaalset:

Een app installeren met de aangepaste scriptextensie

Met de aangepaste scriptextensie kunnen scripts worden gedownload en uitgevoerd op virtuele machines in Azure. Deze uitbreiding is handig voor post-implementatieconfiguraties, software-installaties of andere configuratie-/beheertaken. Scripts kunnen worden gedownload uit Azure Storage of GitHub, of worden geleverd in Azure Portal tijdens de uitvoering van extensies. Zie de volgende zelfstudies voor meer informatie over het installeren van een app met een aangepaste scriptextensie:

Een app installeren op een virtuele Windows met PowerShell DSC

PowerShell Desired State Configuration (DSC) is een beheerplatform voor het definiëren van de configuratie van doelmachines. DSC-configuraties definiëren wat er op een computer moet worden geïnstalleerd en hoe de host moet worden geconfigureerd. Een LCM Configuration Manager-engine (Local Configuration Manager) wordt uitgevoerd op elk doel-knooppunt dat aangevraagde acties verwerkt op basis van pushconfiguraties.

Met de PowerShell DSC-extensie kunt u VM-exemplaren in een schaalset aanpassen met PowerShell. Het volgende voorbeeld:

De DSC-extensie wordt toegepast op de VM-exemplaren myScaleSet in de resourcegroep met de naam myResourceGroup. Voer als volgt uw eigen namen in:

# 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

Als het upgradebeleid voor uw schaalset handmatig is, werkt u uw VM-exemplaren bij met Update-AzVmssInstance. Met deze cmdlet wordt de bijgewerkte schaalsetconfiguratie toegepast op de VM-exemplaren en wordt uw toepassing geïnstalleerd.

Een app installeren op een Linux-VM met cloud-init

Cloud-init is een veelgebruikte benadering voor het aanpassen van een Linux-VM als deze voor de eerste keer wordt opgestart. U kunt cloud-init gebruiken voor het installeren van pakketten en schrijven van bestanden, of om gebruikers en beveiliging te configureren. Als de initialisatie van de cloud-init wordt uitgevoerd tijdens het opstartproces, zijn er geen extra stappen of agents vereist om uw configuratie toe te passen.

Cloud-init werkt ook in distributies. U gebruikt bijvoorbeeld niet apt-get install of yum install om een pakket te installeren. In plaats daarvan kunt u een lijst definiëren met te installeren pakketten. Cloud-init maakt automatisch gebruik van het hulpprogramma voor systeemeigen pakketbeheer voor de distro die u selecteert.

Zie Cloud-init gebruiken om Virtuele Azure-cloud-init.txtaan te passen voor meer informatie, waaronder een voorbeeld van eencloud-init.txtbestand.

Als u een schaalset wilt maken en een cloud-init-bestand wilt gebruiken, voegt u de parameter toe aan de opdracht az vmss create en geeft u de naam van een --custom-data cloud-init-bestand op. In het volgende voorbeeld wordt een schaalset met de naam myScaleSet gemaakt in myResourceGroup en worden VM-exemplaren geconfigureerd met een bestand met de naamcloud-init.txt. Voer als volgt uw eigen namen in:

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

Toepassingen installeren met updates van het besturingssysteem

Wanneer er nieuwe versies van het besturingssysteem beschikbaar zijn, kunt u een nieuwe aangepaste afbeelding gebruiken of bouwen en upgrades van het besturingssysteem implementeren in een schaalset. Elk VM-exemplaar wordt bijgewerkt naar de meest recente afbeelding die u opgeeft. U kunt een aangepaste installatie afbeelding gebruiken met de toepassing vooraf geïnstalleerd, de aangepaste scriptextensie of PowerShell DSC om uw toepassing automatisch beschikbaar te maken wanneer u de upgrade gaat uitvoeren. Mogelijk moet u toepassingsonderhoud plannen tijdens het uitvoeren van dit proces om ervoor te zorgen dat er geen problemen zijn met de versiecompatibiliteit.

Als u een aangepaste VM-installatielijn gebruikt met de toepassing vooraf geïnstalleerd, kunt u de toepassingsupdates integreren met een implementatiepijplijn om de nieuwe installatie afbeeldingen te bouwen en upgrades van het besturingssysteem in de schaalset te implementeren. Met deze benadering kan de pijplijn de meest recente toepassings builds ophalen, een VM-afbeelding maken en valideren en vervolgens de VM-exemplaren in de schaalset upgraden. Als u een implementatiepijplijn wilt uitvoeren waarmee toepassingsupdates worden gebouwd en geïmplementeerd in aangepaste VM-installatie afbeeldingen, kunt u een Packer-installatielijn maken en implementeren met Azure DevOps Servicesof een ander platform gebruiken, zoals Spinnaker of Jenkins.

Volgende stappen

Wanneer u toepassingen bouwt en implementeert in uw schaalsets, kunt u het Overzicht van het ontwerp van schaalsets bekijken. Zie PowerShell gebruiken om uw schaalset te beheren voor meer informatie over het beheren van uw schaalset.