Share via


Zelfstudie: Toepassingen installeren in virtuele-machineschaalsets met de Azure CLI

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 een vorige zelfstudie hebt u geleerd om een aangepaste VM-installatiekopie te maken en te gebruiken voor het implementeren van uw VM-exemplaren. Deze aangepaste installatiekopie bevat handmatige installaties van toepassingen en configuraties. U kunt de installatie van toepassingen op een schaalset ook automatiseren nadat elk VM-exemplaar is geïmplementeerd. Bovendien kunt u toepassingen bijwerken die al worden uitgevoerd in een schaalset. In deze zelfstudie leert u het volgende:

  • Automatisch toepassingen installeren in een schaalset
  • De aangepaste scriptextensie van Azure gebruiken
  • Een actieve toepassing in een schaalset bijwerken

Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.

Vereisten

  • Voor dit artikel is versie 2.0.29 of hoger van Azure CLI vereist. Als u Azure Cloud Shell gebruikt, is de nieuwste versie al geïnstalleerd.

Wat is de aangepaste scriptextensie van Azure?

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.

De aangepaste scriptextensie kan worden geïntegreerd met Azure Resource Manager-sjablonen en ook worden uitgevoerd met Azure CLI, Azure PowerShell, de Azure-portal of de REST API. Zie voor meer informatie het overzicht van de aangepaste scriptextensie.

Als u de aangepaste scriptextensie wilt gebruiken met de Azure CLI, moet u een JSON-bestand maken met daarin de bestanden die u wilt verkrijgen en de opdrachten die u wilt uitvoeren. Deze JSON-definities kunnen worden hergebruikt binnen implementaties van schaalsets om zo toepassingen op een consistente manier te installeren.

Definitie van de aangepaste scriptextensie maken

Als u de aangepaste scriptextensie in actie wilt zien, maakt u een schaalset die de IIS-webserver installeert en de hostnaam levert van het VM-exemplaar in de schaalset. Met de volgende definitie van de aangepaste scriptextensie wordt er een voorbeeldscript gedownload vanuit GitHub, waarna de vereiste pakketten worden geïnstalleerd en de hostnaam van het VM-exemplaar wordt weggeschreven naar een standaard-HTML-pagina.

Maak in uw huidige shell een bestand met de naam customConfig.json en plak de volgende configuratie in het bestand. Maak bijvoorbeeld het bestand in de Cloud Shell, niet op uw lokale computer. U kunt elke editor die u wilt gebruiken. In deze zelfstudie gebruiken we Vi. Voervi in Cloud Shell in. Plak de onderstaande JSON in de editor en typ :w customConfig.json.

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

Notitie

Mogelijk moet u het gebruik van enkele (') en dubbele aanhalingstekens (") in het JSON-blok omkeren als u besluit om rechtstreeks naar de JSON te verwijzen (in plaats van te verwijzen naar het bestand customConfig.json) in de parameter --Instellingen hieronder.

Een schaalset maken

Belangrijk

Vanaf november 2023 worden VM-schaalsets die zijn gemaakt met PowerShell en Azure CLI standaard ingesteld op de flexibele indelingsmodus als er geen indelingsmodus is opgegeven. Voor meer informatie over deze wijziging en welke acties u moet ondernemen, gaat u naar Belangrijke wijziging voor VMSS PowerShell/CLI-klanten - Microsoft Community Hub

Maak een resourcegroep maken met az group create. In het volgende voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt op de locatie eastus:

az group create --name myResourceGroup --location eastus

Maak nu een virtuele-machineschaalset met az vmss create. Het volgende voorbeeld wordt een schaalset gemaakt met de naam myScaleSet, en worden SSH-sleutels gegenereerd als deze nog niet bestaan:

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --image Ubuntu2204 \
  --orchestration-mode Flexible \
  --admin-username azureuser \
  --generate-ssh-keys

Het duurt enkele minuten om alle schaalsetresources en VM's te maken en te configureren.

Aangepaste scriptextensie toepassen

Pas de configuratie van de aangepaste scriptextensie toe op de VM-exemplaren in uw schaalset met az vmss extension set. In het volgende voorbeeld wordt de configuratie customConfig.json toegepast op de VM-exemplaren myScaleSet in de resourcegroep met de naam myResourceGroup:

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

Let op

Bestandsnamen zijn hoofdlettergevoelig. Gebruik de exacte bestandsnaam die in deze instructies wordt vermeld om fouten te voorkomen.

De extensie toepassen op de bestaande schaalsetexemplaren

Werk alle exemplaren bij om het aangepaste script toe te passen. De upgrade kan enkele minuten duren.

az vmss update-instances --resource-group myResourceGroup --name myScaleSet --instance-ids "*"

Verkeer naar poort 80 toestaan

Als u wilt toestaan dat verkeer via de load balancer naar de virtuele machines stroomt, moet de standaardnetwerkbeveiligingsgroep worden bijgewerkt.

az network nsg rule create --name AllowHTTP --resource-group myResourceGroup --nsg-name myScaleSetNSG --access Allow --priority 1010 --destination-port-ranges 80 

Uw schaalset testen

Als u de webserver in actie wilt zien, achterhaalt u het openbare IP-adres van de load balancer met az network public-ip show. In het volgende voorbeeld wordt het IP-adres voor myScaleSetLBPublicIP opgehaald, dat is gemaakt als onderdeel van de schaalset:

az network public-ip show \
  --resource-group myResourceGroup \
  --name myScaleSetLBPublicIP \
  --query [ipAddress] \
  --output tsv

Voer in een webbrowser het openbare IP-adres van de load balancer in. Via de load balancer wordt verkeer naar een van uw VM-instanties gedistribueerd, zoals wordt weergegeven in het volgende voorbeeld:

Standaardwebpagina in Nginx

Sluit de webbrowser niet af, zodat u in de volgende stap een bijgewerkte versie ziet.

Het upgradebeleid wijzigen

In de vorige sectie was een handmatige upgrade nodig om de bijgewerkte toepassing toe te passen op alle exemplaren van de schaalset. Als u wilt dat updates automatisch worden toegepast op alle bestaande schaalsetexemplaren, werkt u het upgradebeleid bij van handmatig naar automatisch. Zie Upgradebeleidsregels voor virtuele-machineschaalsets voor meer informatie over upgradebeleid.

az vmss update \
    --name myScaleSet \
    --resource-group myResourceGroup \
    --set upgradePolicy.mode=automatic

App-implementatie bijwerken

Maak in uw huidige shell een bestand met de naam customConfigv2.json en plak de volgende configuratie in het bestand. Deze definitie voert een bijgewerkte versie v2 van het installatiescript van de toepassing uit:

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

Pas de configuratie van de aangepaste scriptextensie opnieuw toe op de schaalset met az vmss extension set. customConfigv2.json wordt gebruikt voor het toepassen van de bijgewerkte versie van de toepassing:

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

Omdat de schaalset nu gebruikmaakt van een beleid voor automatische upgrade, wordt de bijgewerkte toepassing automatisch toegepast op bestaande schaalsetexemplaren. Vernieuw uw webbrowser om de bijgewerkte toepassing weer te geven.

Bijgewerkte webpagina in Nginx

Resources opschonen

Als u de schaalset en aanvullende resources wilt verwijderen, verwijdert u de resourcegroep en alle bijbehorende resources met az group delete. De parameter --no-wait retourneert het besturingselement naar de prompt zonder te wachten totdat de bewerking is voltooid. De parameter --yes bevestigt dat u de resources wilt verwijderen, zonder een extra prompt om dit te doen.

az group delete --name myResourceGroup --no-wait --yes

Volgende stappen

In deze zelfstudie hebt u geleerd hoe u automatisch toepassingen kunt installeren of bijwerken in uw schaalset met Azure CLI:

  • Automatisch toepassingen installeren in een schaalset
  • De aangepaste scriptextensie van Azure gebruiken
  • Een actieve toepassing in een schaalset bijwerken

Ga door naar de volgende zelfstudie voor informatie over het automatisch schalen van uw schaalset.