Automatisierung von XenServer® mit Terraform
Der XenServer Terraform Provider ermöglicht IT-Administratoren die Automatisierung von Konfigurations- und Verwaltungsaufgaben für XenServer-Umgebungen. Dies ist besonders nützlich in großen Umgebungen, wo Automatisierung Konsistenz gewährleistet, manuelle Fehler reduziert und Zeit spart. Mit dem Terraform-Provider können Sie:
- Virtuelle Maschinen (VMs) erstellen
- Snapshots verwalten (erstellen und entfernen)
- Speicher konfigurieren (lokale und NFS-Typen hinzufügen oder entfernen)
- Netzwerke einrichten und verwalten
- Informationen über XenServer-Hosts abrufen
Hauptvorteile des XenServer Terraform Providers:
- Automatisierung: Vereinfacht die Bereitstellung und Verwaltung von XenServer-Umgebungen durch Infrastructure-as-Code (IaC)-Praktiken.
- Effizienz: Automatisiert Aufgaben wie VM-Erstellung, Snapshot-Verwaltung sowie Speicher- oder Netzwerkkonfiguration, wodurch manuelle Eingriffe minimiert werden.
- Konsistenz: Gewährleistet einheitliche Konfigurationen in großen Umgebungen, wodurch Fehler minimiert werden.
- Skalierbarkeit: Unterstützt schnelles Infrastrukturwachstum durch die Optimierung der Erstellung und des Wiederaufbaus von Umgebungen, wie z. B. QA-Setups.
Voraussetzungen
Bevor Sie den XenServer Terraform Provider verwenden, stellen Sie sicher, dass Sie Folgendes haben:
-
Terraform Version 1.8 oder höher
Laden Sie Terraform aus dem offiziellen Terraform Installationshandbuch herunter.
Windows-Benutzer können Terraform mit Chocolatey installieren, indem sie den folgenden Befehl ausführen:
choco install terraform <!--NeedCopy--> -
XenServer-Instanz mit administrativem Zugriff
-
XenServer API-Anmeldeinformationen
Dazu gehören der Benutzername, das Passwort und die IP-Adresse Ihres XenServers.
Erste Schritte
-
Bereiten Sie die Terraform-Konfiguration vor.
Zunächst fügen Sie den XenServer Terraform Provider zu Ihrer Terraform-Konfigurationsdatei
main.tfhinzu:terraform { required_providers { xenserver = { source = "xenserver/xenserver" } } } provider "xenserver" { host = "https://<ip address of XenServer>" username = "root" password = <root password> } <!--NeedCopy--> -
Ressourcen definieren.
Zum Beispiel, um eine VM zu erstellen, definieren Sie die Ressource in Ihrer Konfigurationsdatei:
data "xenserver_sr" "sr" { name_label = "Local storage" } resource "xenserver_vdi" "vdi1" { name_label = "local-storage-vdi-1" sr_uuid = data.xenserver_sr.sr.data_items[0].uuid virtual_size = 100 * 1024 * 1024 * 1024 } data "xenserver_network" "network" {} resource "xenserver_vm" "windows_vm" { name_label = "Windows VM" template_name = "Windows 11" static_mem_max = 4 * 1024 * 1024 * 1024 vcpus = 4 cores_per_socket = 2 cdrom = "win11-x64_uefi.iso" boot_mode = "uefi_security" boot_order = "cdn" hard_drive = [ { vdi_uuid = xenserver_vdi.vdi1.uuid, bootable = true, mode = "RW" } ] network_interface = [ { device = "0" network_uuid = data.xenserver_network.network.data_items[0].uuid, } ] other_config = { "tf_created" = "true" } } <!--NeedCopy-->Oder, um ein NFS-Speicher-Repository (SR) zu erstellen:
resource "xenserver_sr" "nfs" { name_label = "Test NFS SR" type = "nfs" content_type = "" shared = true device_config = { server = "192.0.2.1" serverpath = "/server/path" nfsversion = "3" } sm_config = { shared = "true" } } <!--NeedCopy--> -
Initialisieren und wenden Sie die Konfiguration an.
Um den XenServer Terraform Provider zu installieren, führen Sie aus:
terraform init <!--NeedCopy-->Anschließend, um die definierten Ressourcen bereitzustellen, führen Sie aus:
terraform apply <!--NeedCopy-->
Für erweiterte Konfigurationen und zusätzliche Ressourcen siehe die XenServer Terraform Provider Dokumentation. Sollten Probleme auftreten, wenden Sie sich an den Support oder erstellen Sie ein GitHub-Issue-Ticket.
Was ist neu
Der XenServer Terraform Provider wird unabhängig von XenServer-Versionen aktualisiert, um neue Automatisierungsfunktionen und Fehlerbehebungen einzuführen und die fortlaufende Kompatibilität sicherzustellen.
XenServer Terraform Provider 0.2.2
Veröffentlicht am 27. März 2025
Diese Version enthält die folgenden Verbesserungen:
- Aktualisieren Sie die Abhängigkeiten des Terraform-Providers, um eine Sicherheitslücke in einem Upstream-Paket zu beheben.
- Veröffentlichen Sie den Terraformprovider mit Go SDK v25.3.0.
Frühere Versionen
0.2.1
Veröffentlicht am 20. Januar 2025
Diese Version führt die folgenden neuen Automatisierungsfunktionen ein:
- Erstellen Sie eine VM aus einer Vorlage mit vollständiger Festplattenkopie.
Diese Version enthält die folgenden Verbesserungen:
- Geben Sie UUIDs anstelle von internen Referenzen zurück, um die Benutzerfreundlichkeit zu verbessern.
Diese Version enthält Korrekturen für die folgenden Probleme:
- Das Erstellen, Ändern oder Zerstören eines Pools kann manchmal fehlschlagen und den SSH-Befehl mit einem Fehler beenden.
0.2.0
Veröffentlicht am 11. November 2024
Diese Version führt folgende neue Automatisierungsfunktionen ein:
- Einfaches Hinzufügen und Entfernen von Hosts aus Pools, wodurch die Skalierbarkeit verbessert und die Wartung vereinfacht wird.
- Aktualisieren des Standard-SR und des Verwaltungsnetzwerks.
- Erstellen und Löschen von SMB/CIFS-Speicher, was eine größere Flexibilität bei den Speicherkonfigurationen bietet.
Diese Version enthält die folgenden Verbesserungen:
- Entfernen der Festplattenanzahlbegrenzung beim Erstellen von VMs, wodurch die Hardwareabhängigkeit reduziert und der Speicher optimiert wird.
- Ermöglichen, dass VMs auf Snapshots zurückgesetzt werden können, wodurch Wiederherstellung und Rollback einfacher werden.
- Ermöglichen, dass Anmeldeinformationen aus Umgebungsvariablen gelesen werden können, wodurch die Konfigurationsverwaltung vereinfacht wird.
0.1.2
Veröffentlicht am 31. Oktober 2024
Diese Version enthält Korrekturen für die folgenden Probleme:
- Wenn Sie den XenServer Terraform Provider Version 0.1.1 verwenden, können Kompatibilitätsprobleme auftreten, nachdem Sie die XenServer 8.4-Updates angewendet haben, die am 25. September 2024 für Early Access und am 2. Oktober 2024 für Normal veröffentlicht wurden. Version 0.1.2 behebt diese Kompatibilitätsprobleme.