Erläutern der verfügbaren Optionen zum Erstellen und Verwalten einer Azure-VM

Abgeschlossen

Das Azure-Portal ist der einfachste Weg, um anfangs Ressourcen wie virtuelle Computer zu erstellen. Allerdings stellt Azure nicht unbedingt die effizienteste oder schnellste Möglichkeit dar, insbesondere wenn Sie mehrere Ressourcen gleichzeitig erstellen möchten. In unserem Fall werden wir Dutzende von VMs erstellen, um verschiedene Aufgaben zu verarbeiten. Es wäre umständlich und lästig, sie manuell im Azure-Portal zu erstellen.

Betrachten wir einige andere Methoden zum Erstellen und Verwalten von Ressourcen in Azure:

  • Azure-Ressourcen-Manager-Vorlagen
  • Azure PowerShell
  • Azure CLI
  • Azure-REST-API
  • Azure Client SDK
  • Azure-VM-Erweiterungen
  • Azure Automation-Dienste

Resource Manager-Vorlagen

Angenommen, Sie möchten eine Kopie einer VM mit den gleichen Einstellungen erstellen. Dafür könnten Sie ein VM-Image erstellen, es in Azure hochladen und als Grundlage für Ihre neue VM verwenden. Dieses Vorgehen ist ineffizient und zeitaufwändig. Azure bietet Ihnen die Möglichkeit, eine Vorlage zu erstellen, aus der Sie eine genaue Kopie einer VM erstellen können.

Resource Manager-Vorlagen sind JSON-Dateien, mit denen die Ressourcen definiert werden, die Sie für Ihre Lösung bereitstellen müssen.

Sie können eine Ressourcenvorlage für Ihren virtuellen Computer erstellen. Wählen Sie im VM-Menü unter Automation die Option Vorlage exportieren aus.

Screenshot showing Export template option for a VM.

Hinweis

Die Richtlinien für die Ressourcen, die in der Sandbox für dieses Learn-Modul enthalten sind, verhindern, dass Sie den soeben erstellten virtuellen Computer exportieren können. Eine exportierte Vorlage ist jedoch eine einfach zu bearbeitende JSON-Datei. Sie haben die Möglichkeit, die eine Vorlage zur späteren Verwendung herunterzuladen oder zu speichern oder direkt eine neue VM auf Grundlage dieser Vorlage bereitzustellen. Wenn Sie beispielsweise eine VM aus einer Vorlage in einer Testumgebung erstellen und feststellen, dass sie Ihren lokalen Computer nicht ganz ersetzen kann, können Sie wie folgt vorgehen. Sie können die Ressourcengruppe löschen, wodurch alle Ressourcen gelöscht werden, die Vorlage optimieren und es dann erneut versuchen. Wenn Sie nur Änderungen an den vorhandenen, bereitgestellten Ressourcen vornehmen möchten, können Sie die Vorlage, mit der sie erstellt wurden, ändern und erneut bereitstellen. Resource Manager ändert die Ressourcen entsprechend der neuen Vorlage.

Sobald alles Ihren Vorstellungen entspricht, können Sie mit dieser Vorlage mehrere Versionen Ihrer Infrastruktur replizieren, z. B. für das Staging und die Produktion. Sie können Felder wie beispielsweise „Name des virtuellen Computer“, „Netzwerkname“ und „Speicherkontoname“ parametrisieren und die Vorlage mit verschiedenen Parametern wiederholt laden, um jede Umgebung anzupassen.

Weitere Informationen zum Verwenden von Vorlagen finden Sie unter Schnellstart: Erstellen eines virtuellen Ubuntu Linux-Computers mithilfe einer ARM-Vorlage.

Azure-Befehlszeilenschnittstelle

Eine Option für das Erstellen von Skripts und Befehlszeileninteraktion in Azure ist die Azure CLI.

Die Azure CLI ist das plattformübergreifende Befehlszeilentool von Microsoft zum Verwalten von Azure-Ressourcen wie VMs und Dateiträgern über die Befehlszeile. Sie steht für Linux, macOS, Windows sowie unter Verwendung von Cloud Shell im Browser zur Verfügung.

Sie können beispielsweise über die CLI eine Azure-VM mit dem Befehl az vm create erstellen.

az vm create \
    --resource-group TestResourceGroup \
    --name test-wp1-eus-vm \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --generate-ssh-keys

Die Azure CLI kann mit anderen Skriptsprachen verwendet werden, beispielsweise mit Ruby und Python.

Weitere Informationen zum Erstellen und Verwalten von VMs finden Sie im Modul Verwalten von VMs mit der Azure CLI.

Weitere Informationen zum Verwenden der Azure CLI zum Erstellen von VMs finden Sie unter Schnellstart: Erstellen eines virtuellen Linux-Computers mithilfe der CLI.

Azure PowerShell

Azure PowerShell eignet sich ideal für einmalige interaktive Aufgaben und/oder für das Automatisieren von sich wiederholenden Aufgaben.

Hinweis

PowerShell ist eine plattformübergreifende Shell, die Dienste wie das Shellfenster und Befehlsanalysen bereitstellt. Azure PowerShell ist ein optionales Add-On-Paket, das Azure-spezifische Befehle (sogenannte Cmdlets) hinzufügt. Weitere Informationen zur Installation und Verwendung von Azure PowerShell erhalten Sie in einem separaten Schulungsmodul.

Beispielsweise können Sie mit dem New-AzVM-Cmdlet eine neue auf Debian basierende Azure-VM erstellen.

New-AzVm `
    -ResourceGroupName "TestResourceGroup" `
    -Name "test-wp1-eus-vm" `
    -Location "East US" `
    -Image Debian11 `
    -VirtualNetworkName "test-wp1-eus-network" `
    -SubnetName "default" `
    -SecurityGroupName "test-wp1-eus-nsg" `
    -PublicIpAddressName "test-wp1-eus-pubip" `
    -GenerateSshKey `
    -SshKeyName myPSKey
    -OpenPorts 22

Wie hier gezeigt, geben Sie verschiedene Parameter an, um die zahlreichen verfügbaren VM-Konfigurationseinstellungen zu behandeln. Die meisten Parameter haben sinnvolle Werte – Sie müssen nur die erforderlichen Parameter angeben. Weitere Informationen zum Erstellen und Verwalten von VMs mit Azure PowerShell finden Sie im Modul Automatisieren von Azure-Aufgaben mithilfe von Skripts mit PowerShell.

Weitere Informationen zum Verwenden von PowerShell zum Erstellen von VMs finden Sie unter Schnellstart: Erstellen eines virtuellen Linux-Computers mithilfe von PowerShell.

Terraform

Azure verfügt auch über einen Terraform-Anbieter, sodass Sie mit Terraform Ihre VMs einfach erstellen und verwalten können. Mit Terraform können Sie eine Cloudinfrastruktur definieren, eine Vorschau der Cloudinfrastruktur anzeigen und die Cloudinfrastruktur bereitstellen. Terraform ermöglicht das Erstellen von Konfigurationsdateien mit HCL-Syntax. Mit der HCL-Syntax können Sie den Cloudanbieter (beispielsweise Azure) und die Elemente angeben, aus denen sich Ihre Cloudinfrastruktur zusammensetzt. Nach der Erstellung Ihrer Konfigurationsdateien erstellen Sie einen Ausführungsplan, mit dem Sie eine Vorschau Ihrer Infrastrukturänderungen anzeigen können, bevor diese bereitgestellt werden. Nach der Überprüfung der Änderungen wenden Sie den Ausführungsplan an, um die Infrastruktur bereitzustellen.

Weitere Informationen finden Sie unter Azure-Terraform-Anbieter und Schnellstart: Verwenden von Terraform zum Erstellen einer VM.

Programmgesteuert (APIs)

Im Allgemeinen sind sowohl Azure PowerShell als auch die Azure CLI gute Optionen, wenn Sie einfache Skripts ausführen und Befehlszeilentools verwenden möchten. Bei komplexeren Szenarien, in denen das Erstellen und Verwalten von VMs Teil einer größeren Anwendung mit komplexer Logik ist, ist ein anderer Ansatz erforderlich.

Sie können mit jedem Ressourcentyp in Azure programmgesteuert interagieren.

Azure-REST-API

Die Azure-REST-API bietet Entwicklern nach Ressourcen geordnete Vorgänge und die Möglichkeit, VMs zu erstellen und zu verwalten. Vorgänge werden als URIs mit entsprechenden HTTP-Methoden (GET, PUT, POST, DELETE und PATCH) und einer entsprechenden Antwort verfügbar gemacht.

Die Azure Compute-APIs ermöglichen Ihnen den programmgesteuerten Zugriff auf virtuelle Computer und die zugehörigen unterstützenden Ressourcen.

Weitere Informationen finden Sie in der REST-API-Referenz für virtuelle Computer.

Azure Client SDK

Obwohl die REST-API plattform- und sprachunabhängig ist, achten Entwickler meist auf eine höhere Abstraktionsebene. Das Azure Client SDK kapselt die Azure-REST-API und erleichtert Entwicklern die Interaktion mit Azure dadurch erheblich.

Die Azure Client SDKs sind für verschiedene Programmiersprachen und Frameworks verfügbar, einschließlich .NET-basierter Programmiersprachen wie C#, Java, Node.js, PHP, Python, Ruby und Go.

Nachfolgend sehen Sie einen Beispielausschnitt aus einem C#-Code zum Erstellen einer Azure-VM mit dem NuGet-Paket Microsoft.Azure.Management.Fluent.

var azure = Azure
    .Configure()
    .WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
    .Authenticate(credentials)
    .WithDefaultSubscription();
// ...
var vmName = "test-wp1-eus-vm";

azure.VirtualMachines.Define(vmName)
    .WithRegion(Region.USEast)
    .WithExistingResourceGroup("TestResourceGroup")
    .WithExistingPrimaryNetworkInterface(networkInterface)
    .WithLatestWindowsImage("MicrosoftWindowsServer", "WindowsServer", "2012-R2-Datacenter")
    .WithAdminUsername("jonc")
    .WithAdminPassword("aReallyGoodPasswordHere")
    .WithComputerName(vmName)
    .WithSize(VirtualMachineSizeTypes.StandardDS1)
    .Create();

Hier ist der gleiche Ausschnitt in Java unter Verwendung des Java SDK für Azure.

String vmName = "test-wp1-eus-vm";
// ...
VirtualMachine virtualMachine = azure.virtualMachines()
    .define(vmName)
    .withRegion(Region.US_EAST)
    .withExistingResourceGroup("TestResourceGroup")
    .withExistingPrimaryNetworkInterface(networkInterface)
    .withLatestWindowsImage("MicrosoftWindowsServer", "WindowsServer", "2012-R2-Datacenter")
    .withAdminUsername("jonc")
    .withAdminPassword("aReallyGoodPasswordHere")
    .withComputerName(vmName)
    .withSize("Standard_DS1")
    .create();

Azure-VM-Erweiterungen

Angenommen, Sie möchten nach der ersten Bereitstellung weitere Software auf Ihrer VM konfigurieren und installieren. Sie möchten, dass diese Aufgabe eine bestimmte Konfiguration verwendet, die automatisch überwacht und ausgeführt wird.

Azure-VM-Erweiterungen sind kleine Anwendungen, mit denen Sie Aufgaben auf Azure-VMs nach der erstmaligen Bereitstellung konfigurieren und automatisieren können.

Weitere Informationen finden Sie unter Erweiterungen und Features für Azure-VMs.

Azure Automation-Dienste

Zeitersparnis, Fehlerreduktion und Effizienzsteigerung sind einige der größten Herausforderungen beim Verwalten von Remoteinfrastrukturen. Wenn Sie viele Infrastrukturdienste haben, sollten Sie die Verwendung von übergeordneten Diensten in Azure in Betracht ziehen, um auf einer höheren Ebene arbeiten zu können.

Azure Automation ermöglicht Ihnen die Integration von Diensten, mit denen Sie häufige, zeitaufwändige und fehleranfällige Verwaltungsaufgaben ganz leicht automatisieren können. Zu diesen Diensten zählen die Prozessautomatisierung, Konfigurationsverwaltung und Updateverwaltung.

  • Prozessautomatisierung Angenommen, Sie haben eine VM, die auf ein bestimmtes Fehlerereignis überwacht wird. Sie möchten Maßnahmen ergreifen und das Problem beheben, sobald es gemeldet wird. Mit der Prozessautomatisierung können Sie Watchertasks einrichten, die auf mögliche Ereignisse in Ihrem Rechenzentrum reagieren.

  • Konfigurationsverwaltung. Möglicherweise möchten Sie Softwareupdates nachverfolgen, die für das auf Ihrer VM ausgeführte Betriebssystem verfügbar werden. Vielleicht möchten Sie bestimmte Updates ein- oder ausschließen. Mit der Konfigurationsverwaltung können Sie diese Updates nachverfolgen und bei Bedarf Maßnahmen ergreifen. Mit System Endpoint Configuration Manager können Sie die PCs, Server und mobilen Geräte Ihres Unternehmens verwalten. Mit Configuration Manager können Sie diese Unterstützung auf Ihre Azure-VMs ausdehnen.

  • Updateverwaltung. Verwenden Sie diesen Dienst, um Updates und Patches für Ihre VMs zu verwalten. Dieser Dienst bietet Ihnen die Möglichkeit, den Status verfügbarer Updates zu bewerten, Installationen zu planen und Bereitstellungsergebnisse zu überprüfen, um sicherzustellen, dass Updates erfolgreich angewendet werden. Die Updateverwaltung umfasst Dienste, die Prozess- und Konfigurationsverwaltung bieten. Sie aktivieren die Updateverwaltung für eine VM direkt über Ihr Azure Automation-Konto. Sie können die Updateverwaltung für eine einzelne VM auch im Bereich der VM im Portal aktivieren.

Automatisches Herunterfahren

Das automatische Herunterfahren ist ein Feature in Azure, mit dem Sie Ihre VMs nach einem Zeitplan automatisch herunterfahren können. Verwenden Sie das automatische Herunterfahren, um Kosten zu sparen, indem Sie sicherstellen, dass Ihre VMs nicht ausgeführt werden, wenn sie nicht benötigt werden. Sie können den Zeitplan so festlegen, dass das automatische Herunterfahren täglich oder wöchentlich erfolgt, und Sie können auch die Zeitzone für den Zeitplan angeben.

Wenn Sie im Azure-Portal zum Feature für das automatische Herunterfahren einer VM navigieren möchten, wechseln Sie im Portal zum Blatt der VM, klicken Sie im Abschnitt „Vorgänge“ auf „Automatisches Herunterfahren“, und konfigurieren Sie dann die Einstellungen für das automatische Herunterfahren entsprechend Ihren Einstellungen.

Screenshot showing Auto-shutdown option for a VM.

Weitere Informationen finden Sie unter Automatisches Herunterfahren.

Wie Sie sehen, bietet Azure verschiedene Tools zum Erstellen und Verwalten von Ressourcen, mit denen Sie Verwaltungsvorgänge in einen Prozess integrieren und Ihre Workflows optimieren können. Als Nächstes werfen wir einen Blick auf einige andere Azure-Dienste, mit denen Sie für eine optimale Ausführung Ihrer Infrastrukturressourcen sorgen können werden.