Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Um Anwendungen auf Instanzen virtueller Computer (VM) in einer Skalierungsgruppe auszuführen, müssen Sie zunächst die Anwendungskomponenten und erforderlichen Dateien installieren. In einem vorherigen Tutorial wurde beschrieben, wie Sie ein benutzerdefiniertes VM-Image erstellen und verwenden, um Ihre VM-Instanzen bereitzustellen. Dieses benutzerdefinierte Image umfasste manuelle Anwendungsinstallationen und -konfigurationen. Sie können die Installation von Anwendungen auch per Skalierungsgruppe automatisieren, nachdem die einzelnen VM-Instanzen bereitgestellt wurden, oder eine Anwendung aktualisieren, die bereits in einer Skalierungsgruppe ausgeführt wird. In diesem Tutorial lernen Sie Folgendes:
- Anwendungen in Ihrer Skalierungsgruppe automatisch installieren
- Verwenden der benutzerdefinierten Skripterweiterung von Azure
- Aktualisieren einer laufenden Anwendung in einer Skalierungsgruppe
Wenn Sie nicht über ein Azure-Konto verfügen, erstellen Sie ein kostenloses Konto , bevor Sie beginnen.
Voraussetzungen
Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter "Erste Schritte mit Azure Cloud Shell".
Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.
Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Weitere Anmeldeoptionen finden Sie unter Authentifizieren bei Azure mithilfe der Azure CLI.
Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden und Verwalten von Erweiterungen mit der Azure CLI.
Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.
- Für diesen Artikel ist mindestens Version 2.0.29 der Azure CLI erforderlich. Bei Verwendung von Azure Cloud Shell ist die aktuelle Version bereits installiert.
Was ist die benutzerdefinierte Skripterweiterung von Azure?
Die benutzerdefinierte Skripterweiterung lädt Skripts auf Azure-VMs herunter und führt sie aus. Diese Erweiterung ist hilfreich bei der Konfiguration nach der Bereitstellung, bei der Softwareinstallation oder bei anderen Konfigurations-/Verwaltungsaufgaben. Skripts können aus Azure Storage oder GitHub heruntergeladen oder dem Azure-Portal zur Laufzeit der Erweiterung bereitgestellt werden.
Die benutzerdefinierte Skripterweiterung kann in Azure Resource Manager-Vorlagen integriert und auch mit der Azure CLI, Azure PowerShell, dem Azure-Portal oder der REST-API verwendet werden. Weitere Informationen finden Sie unter Übersicht über benutzerdefinierte Skripterweiterungen.
Zum Verwenden der benutzerdefinierten Skripterweiterung mit der Azure CLI erstellen Sie eine JSON-Datei, mit der definiert wird, welche Dateien beschafft und welche Befehle ausgeführt werden sollen. Diese JSON-Definitionen können über mehrere Bereitstellungen von Skalierungsgruppen hinweg wiederverwendet werden, um konsistente Anwendungsinstallationen zu gewährleisten.
Erstellen der Definition für die benutzerdefinierte Skripterweiterung
Um die Custom Script Extension in Aktion zu sehen, erstellen wir eine VM-Skalierungsgruppe, die den NGINX-Webserver installiert und den Hostnamen der VM-Instanz in der Skalierungsgruppe ausgibt. Mit der folgenden Definition der benutzerdefinierten Skripterweiterung wird ein Beispielskript von GitHub heruntergeladen, die erforderlichen Pakete werden installiert, und anschließend wird der Hostname der VM-Instanz auf eine einfache HTML-Seite geschrieben.
Erstellen Sie in der aktuellen Shell eine Datei namens customConfig.json, und fügen Sie die folgende Konfiguration ein. Erstellen Sie die Datei beispielsweise in Cloud Shell, nicht auf dem lokalen Computer. Dazu können Sie einen beliebigen Editor verwenden. In diesem Tutorial verwenden Sie vi. Geben Sie vi in der Cloud Shell ein. Fügen Sie den folgenden JSON-Code in den Editor ein, und geben Sie :w customConfig.json ein.
{
"fileUris": ["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate_nginx.sh"],
"commandToExecute": './automate_nginx.sh'
}
Hinweis
Möglicherweise müssen Sie die Verwendung der einfachen (') und doppelten Anführungszeichen (") innerhalb des JSON-Blocks umkehren, wenn Sie sich dazu entschließen, im Parameter --settings weiter unten direkt auf den JSON-Code zu verweisen (anstatt auf die Datei customConfig.json).
Erstellen einer Skalierungsgruppe
Wichtig
Ab November 2023 werden VM-Skalierungsgruppen, die mit PowerShell und der Azure CLI erstellt wurden, standardmäßig auf den flexiblen Orchestrierungsmodus festgelegt, wenn kein Orchestrierungsmodus angegeben wird. Weitere Informationen zu dieser Änderung und zu den Maßnahmen, die Sie ergreifen sollten, finden Sie unter Breaking Change für PowerShell-/CLI-Kunden mit VMSS – Microsoft Community Hub.
Erstellen Sie mit az group create eine Ressourcengruppe. Im folgenden Beispiel wird eine Ressourcengruppe mit dem Namen myResourceGroup am Standort eastus erstellt:
az group create --name myResourceGroup --location eastus
Erstellen Sie dann mit az vmss create eine VM-Skalierungsgruppe. Im folgenden Beispiel wird eine Skalierungsgruppe mit dem Namen myScaleSet erstellt, und es werden SSH-Schlüssel generiert, falls sie noch nicht vorhanden sind:
az vmss create \
--resource-group myResourceGroup \
--name myScaleSet \
--image Ubuntu2204 \
--orchestration-mode Flexible \
--admin-username azureuser \
--generate-ssh-keys
Das Erstellen und Konfigurieren aller Ressourcen und VMs des Skalierungssets dauert einige Minuten.
Anwenden der benutzerdefinierten Skripterweiterung
Wenden Sie die Konfiguration der benutzerdefinierten Skripterweiterung auf die VM-Instanzen in Ihrer Skalierungsgruppe an, indem Sie az vmss extension set verwenden. Im folgenden Beispiel wird die Konfiguration customConfig.json auf die myScaleSet-VM-Instanzen in der Ressourcengruppe myResourceGroup angewendet:
az vmss extension set \
--publisher Microsoft.Azure.Extensions \
--version 2.0 \
--name CustomScript \
--resource-group myResourceGroup \
--vmss-name myScaleSet \
--settings customConfig.json
Achtung
Bei Dateinamen wird zwischen Groß- und Kleinschreibung unterschieden. Verwenden Sie den genauen Dateinamen, der in diesen Anweisungen angegeben ist, um ein Scheitern zu vermeiden.
Anwenden der Erweiterung auf die vorhandenen Skalierungsgruppeninstanzen
Aktualisieren Sie alle Instanzen, um das benutzerdefinierte Skript anzuwenden. Das Upgrade kann einige Minuten dauern.
az vmss update-instances --resource-group myResourceGroup --name myScaleSet --instance-ids "*"
Datenverkehr über Port 80 zulassen
Damit Datenverkehr über den Lastenausgleich an die VMs übertragen werden kann, muss die standardmäßige Netzwerksicherheitsgruppe aktualisiert werden.
az network nsg rule create --name AllowHTTP --resource-group myResourceGroup --nsg-name myScaleSetNSG --access Allow --priority 1010 --destination-port-ranges 80
Testen Sie Ihre Skalierungsgruppe
Um den Webserver in Aktion zu sehen, rufen Sie mit az network public-ip show die öffentliche IP-Adresse des Lastenausgleichsmoduls ab. Im folgenden Beispiel wird die IP-Adresse für myScaleSetLBPublicIP abgerufen, die als Teil der Skalierungsgruppe erstellt wurde:
az network public-ip show \
--resource-group myResourceGroup \
--name myScaleSetLBPublicIP \
--query [ipAddress] \
--output tsv
Geben Sie die öffentliche IP-Adresse des Lastenausgleichsmoduls in einen Webbrowser ein. Das Lastenausgleichsmodul verteilt den Datenverkehr auf eine Ihrer VM-Instanzen. Dies ist im folgenden Beispiel dargestellt:
Lassen Sie den Webbrowser geöffnet, damit Sie im nächsten Schritt die aktualisierte Version sehen können.
Ändern Sie die Upgrade-Richtlinie
Im vorherigen Abschnitt war eine manuelle Aktualisierung erforderlich, um die aktualisierte Anwendung auf alle Scale-Set-Instanzen zu übernehmen. Damit Updates automatisch auf alle vorhandenen Skalierungsgruppeninstanzen angewendet werden können, ändern Sie die Upgraderichtlinie von „Manuell“ in „Automatisch“. Weitere Informationen zu Upgraderichtlinien finden Sie unter Upgraderichtlinien für VM-Skalierungsgruppen.
az vmss update \
--name myScaleSet \
--resource-group myResourceGroup \
--set upgradePolicy.mode=automatic
Aktualisieren der App-Bereitstellung
Erstellen Sie in der aktuellen Shell eine Datei namens customConfigv2.json, und fügen Sie die folgende Konfiguration ein. Diese Definition führt eine aktualisierte v2-Version des Anwendungsinstallationsskripts aus:
{
"fileUris": ["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate_nginx_v2.sh"],
"commandToExecute": "./automate_nginx_v2.sh"
}
Wenden Sie die Konfiguration der benutzerdefinierten Skripterweiterung mit az vmss extension set erneut auf Ihre Skalierungsgruppe an. Die Definition customConfigv2.json wird verwendet, um die aktualisierte Version der Anwendung anzuwenden:
az vmss extension set \
--publisher Microsoft.Azure.Extensions \
--version 2.0 \
--name CustomScript \
--resource-group myResourceGroup \
--vmss-name myScaleSet \
--settings @customConfigv2.json
Da die Skalierungsgruppe jetzt eine Richtlinie für automatische Upgrades verwendet, wird die aktualisierte Anwendung automatisch auf vorhandene Skalierungsgruppeninstanzen angewendet. Aktualisieren Sie Ihren Webbrowser, um die aktualisierte Anwendung anzuzeigen.
Bereinigen von Ressourcen
Um Ihre Skalierungsgruppe und weitere Ressourcen zu entfernen, löschen Sie die Ressourcengruppe und alle darin enthaltenen Ressourcen mit az group delete. Der Parameter --no-wait gibt die Steuerung an die Eingabeaufforderung zurück, ohne zu warten, bis der Vorgang abgeschlossen ist. Der Parameter --yes bestätigt ohne eine zusätzliche Aufforderung, dass Sie die Ressourcen löschen möchten.
az group delete --name myResourceGroup --no-wait --yes
Nächste Schritte
In diesem Tutorial wurde beschrieben, wie Sie Anwendungen in Ihrer Skalierungsgruppe mit der Azure CLI automatisch installieren und aktualisieren:
- Anwendungen in Ihrer Skalierungsgruppe automatisch installieren
- Verwenden der benutzerdefinierten Skripterweiterung von Azure
- Aktualisieren einer laufenden Anwendung in einer Skalierungsgruppe
Fahren Sie mit dem nächsten Tutorial fort, um zu erfahren, wie Sie die Größe Ihrer Skalierungsgruppe automatisch anpassen.