Tutorial: Erstellen und Verwenden eines benutzerdefinierten Images für Virtual Machine Scale Sets mit der Azure CLI

Wenn Sie eine Skalierungsgruppe erstellen, geben Sie ein Image an, das beim Bereitstellen der VM-Instanzen verwendet wird. Sie können ein benutzerdefiniertes VM-Image verwenden, um die Anzahl von Aufgaben zu reduzieren, nachdem VM-Instanzen bereitgestellt wurden. Dieses benutzerdefinierte VM-Image enthält alle erforderlichen Anwendungsinstallationen oder -konfigurationen. Für alle VM-Instanzen, die in der Skalierungsgruppe erstellt werden, wird das benutzerdefinierte VM-Image verwendet, und die VM-Instanzen sind für die Bereitstellung Ihres Anwendungsdatenverkehrs bereit. In diesem Tutorial lernen Sie Folgendes:

  • Erstellen einer Azure Compute Gallery
  • Erstellen der Definition eines spezialisierten Images
  • Erstellen einer Imageversion
  • Erstellen einer Skalierungsgruppe auf der Grundlage eines spezialisierten Images
  • Freigeben eines Imagekatalogs

Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein kostenloses Azure-Konto, bevor Sie beginnen.

Voraussetzungen

  • Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter Schnellstart für Bash in 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. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit 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 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.4.0 der Azure CLI erforderlich. Bei Verwendung von Azure Cloud Shell ist die aktuelle Version bereits installiert.

Übersicht

Eine Azure Compute Gallery vereinfacht das Freigeben benutzerdefinierter Images in Ihrer Organisation. Benutzerdefinierte Images sind wie Marketplace-Images, Sie erstellen sie jedoch selbst. Benutzerdefinierte Images können zum Starten von Konfigurationen verwendet werden, z.B. zum Vorabladen von Anwendungen, Anwendungskonfigurationen und anderen Betriebssystemkonfigurationen.

Mithilfe von Azure Compute Gallery können Sie Ihre benutzerdefinierten VM-Images für andere Benutzer freigeben. Wählen Sie aus, welche Images Sie teilen möchten, in welchen Regionen Sie sie verfügbar machen möchten, und mit wem Sie sie teilen möchten.

Erstellen und Konfigurieren einer Quell-VM

Erstellen Sie zunächst mit az group create eine Ressourcengruppe und dann mit az vm create eine VM. Diese VM wird dann als Quelle für das Image verwendet. Im folgenden Beispiel wird eine VM mit dem Namen myVM in der Ressourcengruppe myResourceGroup erstellt:

az group create --name myResourceGroup --location eastus

az vm create \
  --resource-group myResourceGroup \
  --name myVM \
  --image <SKU image> \
  --admin-username azureuser \
  --generate-ssh-keys

Wichtig

Die ID Ihrer VM wird in der Ausgabe des Befehls az vm create angezeigt. Kopieren Sie diese an einen sicheren Speicherort, damit Sie sie später in diesem Tutorial verwenden können.

Ein Imagekatalog ist die primäre Ressource, die zur Ermöglichung des Teilens von Images verwendet wird.

Zulässige Zeichen für Katalognamen sind Groß- und Kleinbuchstaben, Zahlen und Punkte. Der Katalogname darf keine Bindestriche enthalten. Katalognamen müssen innerhalb Ihres Abonnements eindeutig sein.

Erstellen Sie einen Imagekatalog mit az sig create. Im folgenden Beispiel werden eine Ressourcengruppe namens myGalleryRG in der Region USA, Osten und ein Katalog namens myGallery erstellt.

az group create --name myGalleryRG --location eastus
az sig create --resource-group myGalleryRG --gallery-name myGallery

Erstellen einer Imagedefinition

Imagedefinitionen erstellen eine logische Gruppierung von Images. Sie werden verwendet, um Informationen über die Imageversionen zu verwalten, die in ihnen erstellt werden.

Namen für Imagedefinition können aus Groß- und Kleinbuchstaben, Zahlen, Punkten und (Binde)Strichen bestehen.

Stellen Sie sicher, dass die Imagedefinition den richtigen Typ aufweist. Wenn Sie die VM generalisiert haben (über Sysprep für Windows oder waagent -deprovision für Linux) sollten Sie unter Verwendung von --os-state generalized eine generalisierte Imagedefinition erstellen. Wenn Sie die VM verwenden möchten, ohne vorhandene Benutzerkonten zu entfernen, erstellen Sie mithilfe von --os-state specialized eine spezialisierte Imagedefinition.

Weitere Informationen zu den Werten, die Sie für eine Imagedefinition angeben können, finden Sie unter Imagedefinitionen.

Erstellen Sie mithilfe von az sig image-definition create eine Imagedefinition im Katalog.

In diesem Beispiel heißt die Imagedefinition myImageDefinition und ist für ein spezialisiertes Linux-Betriebssystemimage vorgesehen. Verwenden Sie --os-type Windows, um eine Definition für Images zu erstellen, die ein Windows-Betriebssystem verwenden.

az sig image-definition create \
   --resource-group myGalleryRG \
   --gallery-name myGallery \
   --gallery-image-definition myImageDefinition \
   --publisher myPublisher \
   --offer myOffer \
   --sku mySKU \
   --os-type Linux \
   --os-state specialized

Wichtig

Die ID Ihrer Imagedefinition wird in der Ausgabe des Befehls angezeigt. Kopieren Sie diese an einen sicheren Speicherort, damit Sie sie später in diesem Tutorial verwenden können.

Erstellen der Imageversion

Erstellen Sie mithilfe von az image gallery create-image-version eine Imageversion der VM.

Zulässige Zeichen für die Imageversion sind Zahlen und Punkte. Zahlen müssen im Bereich einer ganzen 32-Bit-Zahl liegen. Format: Hauptversion.Nebenversion.Patch.

In diesem Beispiel wird ein Image der Version 1.0.0 verwendet, und es werden zwei Replikate erstellt: eins in der Region USA, Süden-Mitte und eins in der Region USA, Osten 2. Die Replikationsregionen müssen die Region beinhalten, in der sich der virtuelle Quellcomputer befindet.

Ersetzen Sie den Wert --managed-image in diesem Beispiel durch die ID Ihrer VM aus dem vorherigen Schritt.

az sig image-version create \
   --resource-group myGalleryRG \
   --gallery-name myGallery \
   --gallery-image-definition myImageDefinition \
   --gallery-image-version 1.0.0 \
   --target-regions "southcentralus=1" "eastus=1" \
   --managed-image "/subscriptions/<Subscription ID>/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM"

Hinweis

Sie müssen warten, bis die Imageversion vollständig erstellt und repliziert wurde, bevor Sie dieses verwaltete Image verwenden können, um eine weitere Imageversion zu erstellen.

Fügen Sie beim Erstellen der Imageversion entweder --storage-account-type premium_lrs hinzu, um Ihr Image in Premium-Speicher zu speichern, oder --storage-account-type standard_zrs, um Ihr Image in zonenredundantem Speicher zu speichern.

Erstellen einer Skalierungsgruppe auf der Grundlage des Images

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 mithilfe von az vmss create eine Skalierungsgruppe auf der Grundlage des spezialisierten Images.

Erstellen Sie die Skalierungsgruppe mithilfe von az vmss create und unter Verwendung des Parameters --specialized, um anzugeben, dass es sich um ein spezialisiertes Image handelt.

Verwenden Sie die Imagedefinitions-ID für --image, um die Skalierungsgruppeninstanzen auf Grundlage der neuesten verfügbaren Imageversion zu erstellen. Sie können die Skalierungsgruppeninstanzen auch auf der Grundlage einer bestimmten Version erstellen, indem Sie die Imageversions-ID für --image verwenden.

Erstellen Sie eine Skalierungsgruppe mit dem Namen myScaleSet und der neuesten Version des zuvor erstellten Images myImageDefinition.

az group create --name myResourceGroup --location eastus
az vmss create \
   --resource-group myResourceGroup \
   --name myScaleSet \
   --orchestration-mode flexible \
   --image "/subscriptions/<Subscription ID>/resourceGroups/myGalleryRG/providers/Microsoft.Compute/galleries/myGallery/images/myImageDefinition" \
   --specialized

Die Erstellung und Konfiguration aller Ressourcen und virtuellen Computer der Skalierungsgruppe dauert einige Minuten.

Sie können Images zwischen Abonnements mithilfe der rollenbasierten Zugriffssteuerung von Azure (Azure Role-Based Access Control, Azure RBAC) teilen. Sie können Images über den Katalog, die Imagedefinition oder die Imageversion freigeben. Jeder Benutzer, der Leseberechtigungen für eine Imageversion besitzt (auch über Abonnements hinweg), kann mithilfe der Imageversion einen virtuellen Computer bereitstellen.

Wir empfehlen, dass Sie mit anderen Benutzern auf Ebene des Katalogs teilen. Um die Objekt-ID Ihres Katalogs abzurufen, verwenden Sie az sig show.

az sig show \
   --resource-group myGalleryRG \
   --gallery-name myGallery \
   --query id

Verwenden Sie die Objekt-ID als Bereich, zusammen mit einer E-Mail-Adresse und az role assignment create, um einem Benutzer Zugriff auf den geteilten Imagekatalog zu gewähren. Ersetzen Sie <email-address> und <gallery iD> durch Ihre eigenen Angaben.

az role assignment create \
   --role "Reader" \
   --assignee <email address> \
   --scope <gallery ID>

Weitere Informationen zum Teilen von Ressourcen mithilfe der Azure RBAC finden Sie unter Hinzufügen oder Entfernen von Azure-Rollenzuweisungen mithilfe der Azure CLI.

Bereinigen von Ressourcen

Löschen Sie die Ressourcengruppe und alle dazugehörigen Ressourcen mit az group delete, um Ihre Skalierungsgruppe und die weiteren Ressourcen zu entfernen. 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 ein benutzerdefiniertes VM-Image für Ihre Skalierungsgruppen mit der Azure CLI erstellen und verwenden:

  • Erstellen einer Azure Compute Gallery
  • Erstellen der Definition eines spezialisierten Images
  • Erstellen einer Imageversion
  • Erstellen einer Skalierungsgruppe auf der Grundlage eines spezialisierten Images
  • Freigeben eines Imagekatalogs

Fahren Sie mit dem nächsten Tutorial fort, um zu erfahren, wie Sie Anwendungen in Ihrer Skalierungsgruppe bereitstellen.