Getty Images/iStockphoto

Azure Virtual Desktop mit Terraform konfigurieren

Es gibt mehrere Optionen, eine Azure-Virtual-Desktop-Umgebung zu konfigurieren, doch Terraform hat einige Stärken, die der IT helfen, ihr AVD-Management zu verbessern.

Die Verlagerung einer Desktop-Umgebung von On-Premises in die Cloud kann eine große Herausforderung sein, da die manuelle Neuerstellung aller Workloads in der Cloud sehr zeitaufwendig ist.

Beim Umzug in die Cloud ist es ein guter Zeitpunkt, sich neue Tools anzusehen, die Sie als IT-Administrator unterstützen, Ihre Workloads einfacher bereitzustellen. Eines dieser Tools ist HashiCorp Terraform, das den Übergang zu Azure Virtual Desktop (AVD) in Verbindung mit den nativen AVD-Tools erleichtern kann.

Was ist Terraform und warum sollten Sie es verwenden?

Terraform ist ein Produkt von HashiCorp und hat sich auf dem Markt für Infrastructure as Code (IaC) durchgesetzt. Mit Terraform können Sie Ihre Cloud-Infrastruktur als Code definieren, in der Vorschau anzeigen und bereitstellen. Da Sie sich nicht mehr manuell durch Azure klicken müssen, vereinfacht Terraform den Bereitstellungsprozess Ihrer Workloads. Es automatisiert die Bereitstellung auf eine Weise, die eine Menge Zeit spart.

Eine Frage, die Sie sich vielleicht stellen, ist, warum Sie Terraform und nicht zum Beispiel PowerShell verwenden sollten. Es gibt einen großen Unterschied zu einer reinen Skriptsprache.

Ja, Sie können mit einem PowerShell-Skript das gleiche Ergebnis erzielen, aber Terraform macht die Bereitstellung Ihrer Infrastruktur viel einfacher.

Es erfordert nicht viel Skripting-Kenntnisse. Sie legen fest, welche Ressourcen Sie benötigen, und Terraform fragt Sie nach einigen grundlegenden Eingaben, um diese Ressourcen zu erstellen. Diese Eingaben werden in einer Variablendatei gespeichert. Das bedeutet, dass Sie nur eine Kopie Ihrer Variablendatei erstellen und einige Variablen wie den Namen ändern müssen, wenn Sie Ihre Umgebung neu erstellen müssen: zum Beispiel, um eine Testumgebung zu erstellen.

Eine weitere Aufgabe, die Terraform gut erfüllt, ist die Überprüfung, ob alles korrekt ist, bevor die Bereitstellung mit dem Befehl plan abgeschlossen wird. Um festzustellen, ob er die gewünschte Umgebung schafft, sieht sich Terraform Ihre Variablen und Ihre Konfiguration an und überprüft Ihren Gesamtplan.

Die Nutzung über mehrere Cloud- und Infrastrukturumgebungen hinweg ist der letzte große Vorteil von Terraform. Sie können Ihren Workload genauso einfach auf Microsoft Azure wie auf Amazons AWS oder vor Ort auf vSphere mit Terraform bereitstellen. Sie müssen keine neuen Befehlszeilen lernen, sondern nur wissen, wie die Terraform-Ressourcen heißen. Das macht Terraform leistungsfähiger, benutzerfreundlicher und berechenbarer als die Erstellung eines PowerShell-Skripts.

Microsoft unterstützt Terraform vollständig. Sie greifen direkt aus der Cloud-Shell auf die Terraform-Befehlszeile zu. Das bedeutet, dass Sie außer einem Azure-Abonnement nichts weiter benötigen, um Terraform mit Azure zu nutzen.

Die Leistungsfähigkeit von Terraform mit AVD

Der Leitfaden von Microsoft erklärt, wie Sie eine vollständige AVD-Umgebung in Sekundenschnelle aus dem Code erstellen. Nehmen wir an, Sie automatisieren auch die Erstellung Ihres AVD-Images, beispielsweise mit Packer. Um Ihre Umgebung von Grund auf zu einer vollständigen Produktionsumgebung zu erstellen, ohne irgendwo in Azure klicken zu müssen – einschließlich der virtuellen Maschinen, die Sie mit Ihrem Image hosten – können Sie in diesem Fall dann Terraform verwenden.

Ein großer Vorteil dieser Vorgehensweise ist, dass Sie im Falle eines Worst-Case-Szenarios – zum Beispiel, wenn jemand Ihre Umgebung löscht – im Handumdrehen wieder einsatzbereit sind. Sie haben den Endzustand Ihrer AVD-Umgebung in Terraform definiert und kehren bei Bedarf schnell zu diesem Zustand zurück. Das macht die Azure-Migration einfacher und schneller. Natürlich müssen Sie immer noch die Daten berücksichtigen, die die Benutzer innerhalb Ihrer AVD-Umgebung benötigen. Hierfür ist möglicherweise noch eine separate Datenmigration erforderlich.

Mit Ihrer Variablendatei für AVD erstellen Sie auch ganz einfach eine vollständige OTAP-Umgebung (Develop, Test, Accept and Produce), indem Sie Ihre AVD-Umgebung einfach mit anderen Variablen neu bereitstellen. Das ist ein großer Vorteil und führt zu Kosteneinsparungen. Wenn sie nicht mehr benötigt wird, können Sie Ihre OTAP-Umgebung in der Cloud löschen. So müssen Sie nicht für die Kosten der Aufbewahrung in der Cloud aufkommen. Wenn Sie sie brauchen, führen Sie einfach Ihr Terraform-Skript aus und Sie haben Ihre Umgebung. Auf diese Weise nutzen Sie die Leistungsfähigkeit der Cloud zusammen mit Infrastructure as Code, um auf einfache Weise Geld zu sparen.

Ansible versus Terraform versus Vagrant: Was ist der Unterschied?
Abbildung 1: Hier sind die größten Unterschiede zwischen Ansible, Terraform und Vagrant aufgelistet.

Kombination mit Terraform mit anderen Tools

Terraform glänzt, wenn es im Tandem mit anderen Tools wie GitHub, Azure DevOps und Ansible eingesetzt wird. Natürlich können Sie Terraform auch allein verwenden, aber die Kombination dieser Tools führt zu einer stabileren und berechenbareren Umgebung.

GitHub

Da Terraform auf Code basiert, ist es praktisch, diesen Code mit einem Git-Repository wie GitHub zu speichern. Mit den Möglichkeiten von Git sehen Sie, wer Ihre Terraform-HCL-Dateien bearbeitet, einschließlich der Konfiguration und der Variablen. Sie erstellen verschiedene Versionen der Dateien oder Zweige und testen die Einsätze. Und Sie machen Änderungen an den Dateien einfach rückgängig. Die Kombination von GitHub und Terraform ist fast ein Selbstläufer.

Wussten Sie auch, dass Sie neue GitHub-Repositories mit Terraform bereitstellen können? Sie können es also auch andersherum verwenden, was die Kombination perfekt macht. Und natürlich ist die Terraform-Version auch auf der GitHub-Seite von HashiCorp zu finden.

Azure DevOps

Azure DevOps ist eine allumfassende Automatisierungsplattform, die auf DevOps-Prinzipien aufbaut. Um User Stories und Änderungen in Ihrer Umgebung zu verfolgen, verwenden Sie Boards mit Azure DevOps. Diese Boards verknüpfen Sie mit Artefakten in Repos und Pipelines. Bei diesen Artefakten kann es sich um Terraform HCL-Dateien handeln, die in den Repos gespeichert werden, die automatisch über Git-Unterstützung verfügen.

Die Azure DevOps-Pipelines verwenden Terraform-Befehle zur Bereitstellung der Infrastruktur. Man kann sich Azure DevOps so vorstellen, dass es Git, die Änderungsverwaltung und die Möglichkeit, Terraform mit anderen Tools wie PowerShell zu kombinieren, in einem einzigen System vereint. Das macht Azure DevOps zu einem leistungsstarken und vollständigen System für jede Cloud-Bereitstellung.

Ansible

Ansible ist ebenfalls ein leistungsstarkes Automatisierungs-Tool, das Sie mit Terraform kombinieren können. Es ermöglicht Ihnen, Terraform mit anderen Befehlszeilen-Tools, zum Beispiel Packer, zu vereinen. Einer der großen Vorteile von Ansible ist, dass es Open Source ist und Sie es wie Terraform kostenlos nutzen können.

Natürlich gibt es sowohl für Ansible als auch für Terraform kostenpflichtige Pläne zur Nutzung ihrer Tools. Terraform ist ein großartiges Werkzeug, um schnell eine Infrastruktur in der Cloud aufzubauen. Aber mit Ansible können Sie beispielsweise Anwendungen auf dieser Infrastruktur bereitstellen und die Governance aufrechterhalten, um zu überprüfen, ob Ihre Bereitstellung korrekt funktioniert. Sie wollen nicht immer Ihre gesamte Plattform neu aufbauen, wenn es nur eine Änderung gibt, und mit Ansible automatisieren Sie diese Änderung einfach auf Ihrer gesamten Plattform. Außerdem bietet Ansible eine Überwachung und die Möglichkeit, Tickets zu protokollieren oder Probleme zu lösen.

Erfahren Sie mehr über DevOps