XenServer

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

  1. Bereiten Sie die Terraform-Konfiguration vor.

    Zunächst fügen Sie den XenServer Terraform Provider zu Ihrer Terraform-Konfigurationsdatei main.tf hinzu:

    terraform {
        required_providers {
            xenserver = {
            source = "xenserver/xenserver"
            }
        }
    }
    
        provider "xenserver" {
            host     = "https://<ip address of XenServer>"
            username = "root"
            password = <root password>
        }
    <!--NeedCopy-->
    
  2. 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-->
    
  3. 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.
Automatisierung von XenServer® mit Terraform