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
Gebruik de Bash-omgeving in Azure Cloud Shell. Zie quickstart voor Bash in Azure Cloud Shell voor meer informatie.
Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren. Als u in Windows of macOS werkt, kunt u Azure CLI uitvoeren in een Docker-container. Zie De Azure CLI uitvoeren in een Docker-container voor meer informatie.
Als u een lokale installatie gebruikt, meldt u zich aan bij Azure CLI met behulp van de opdracht az login. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Raadpleeg Aanmelden bij Azure CLI voor aanvullende aanmeldingsopties.
Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Raadpleeg Extensies gebruiken met Azure CLI voor meer informatie over extensies.
Voer az version uit om de geïnstalleerde versie en afhankelijke bibliotheken te vinden. Voer az upgrade uit om te upgraden naar de nieuwste versie.
- 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:
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.
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.