XenServer

Automatisieren von XenServer mit Terraform

Der XenServer Terraform Provider ermöglicht es IT-Administratoren, Konfigurations- und Verwaltungsaufgaben für XenServer-Umgebungen zu automatisieren. Dies ist besonders nützlich bei groß angelegten Setups, bei denen die Automatisierung Konsistenz gewährleistet, manuelle Fehler reduziert und Zeit spart. Mit dem Terraform-Anbieter können Sie:

  • Erstellen von virtuellen Maschinen (VMs)
  • Verwalten von Snapshots (Erstellen und Entfernen)
  • Konfigurieren des Speichers (Hinzufügen oder Entfernen von lokalen und NFS-Typen)
  • Einrichten und Verwalten von Netzwerken
  • Abrufen von Informationen zu XenServer-Hosts

Die wichtigsten Vorteile des XenServer Terraform Provider:

  • Automatisierung: Vereinfacht die Bereitstellung und Verwaltung von XenServer-Umgebungen durch Infrastructure-as-Code (IaC)-Praktiken.
  • Effizienz: Automatisiert Aufgaben wie VM-Erstellung, Snapshot-Management und Speicher- oder Netzwerkkonfiguration, wodurch manuelle Eingriffe minimiert werden.
  • Konsistenz: Gewährleistet einheitliche Konfigurationen in großen Umgebungen und minimiert Fehler.
  • Skalierbarkeit: Unterstützt schnelles Infrastrukturwachstum durch Rationalisierung der Erstellung und des Neuaufbaus von Umgebungen, wie z. B. QA-Setups.

Voraussetzungen

Bevor Sie den XenServer Terraform-Anbieter verwenden, stellen Sie sicher, dass Sie über Folgendes verfügen:

  • Terraform Version 1.8 oder höher

    Laden Sie Terraform von der offiziellen herunter Terraform-Installationsanleitung.

    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.

    Fügen Sie zunächst 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-->
    
  2. Definieren Sie Ressourcen.

    Um beispielsweise einen virtuellen Computer 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 Storage 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 Sie die Konfiguration, und wenden Sie sie an.

    Um den XenServer Terraform Provider zu installieren, führen Sie Folgendes aus:

      terraform init
    <!--NeedCopy-->
    

    Führen Sie dann Folgendes aus, um die definierten Ressourcen bereitzustellen:

      terraform apply
    <!--NeedCopy-->
    

Erweiterte Konfigurationen und zusätzliche Ressourcen finden Sie in der Dokumentation zum XenServer Terraform-Anbieter. Wenn Sie auf Probleme stoßen, wenden Sie sich an den Support oder erstellen Sie ein GitHub-Problemticket.

Was ist neu

Der XenServer Terraform Provider wird unabhängig von XenServer-Versionen aktualisiert, um neue Automatisierungsfunktionen und Korrekturen einzuführen und fortlaufende Kompatibilität sicherzustellen.

XenServer Terraform-Anbieter 0.2.1

Veröffentlicht: 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 Löschen eines Pools kann manchmal fehlschlagen und den SSH-Befehl mit einem Fehler beenden.

Frühere Releases

0.2.0

Veröffentlicht: 11. November 2024

Diese Version führt die folgenden neuen Automatisierungsfunktionen ein:

  • Fügen Sie Hosts problemlos zu Pools hinzu und entfernen Sie sie. Dies verbessert die Skalierbarkeit und vereinfacht die Wartung.
  • Aktualisieren Sie das Standard-SR- und Verwaltungsnetzwerk.
  • Erstellen und löschen Sie SMB/CIFS-Speicher und bieten Sie so mehr Flexibilität bei Speicherkonfigurationen.

Diese Version enthält die folgenden Verbesserungen:

  • Entfernen Sie die Datenträgeranzahlbeschränkung beim Erstellen von VMs, um die Hardwareabhängigkeit zu verringern und den Speicher zu optimieren.
  • Aktivieren Sie das Zurücksetzen von VMs auf Snapshots, um die Wiederherstellung und das Rollback zu vereinfachen.
  • Aktivieren Sie das Lesen von Anmeldeinformationen aus Umgebungsvariablen, um die Konfigurationsverwaltung zu vereinfachen.

0.1.2

Veröffentlicht: 31. Oktober 2024

Diese Version enthält Korrekturen für die folgenden Probleme:

  • Wenn Sie XenServer Terraform Provider Version 0.1.1 verwenden, können nach der Anwendung der am 25. September 2024 für Early Access und am 2. Oktober 2024 für Normal veröffentlichten XenServer 8-Updates Kompatibilitätsprobleme auftreten. Version 0.1.2 behebt diese Kompatibilitätsprobleme.
Automatisieren von XenServer mit Terraform