So automatisieren Sie Proxmox-Virtual Machines mühelos mit Terraform

Die Verwaltung vieler virtueller Maschinen kann langsam und fehleranfällig sein. Mit Terraform und Proxmox steuern Sie Ihre VMs über Code. Dieser Artikel zeigt Schritt für Schritt, wie Sie Automatisierung einrichten und Ihren Workflow optimieren.

download-icon
Kostenloser Download
für VM, Betriebssystem, DB, Datei, NAS usw.
emma

Updated by Emma on 2026/01/08

Inhaltsverzeichnis
  • Was ist Terraform?

  • Was ist Proxmox?

  • Warum Terraform mit Proxmox verwenden?

  • Methode 1: So richten Sie Terraform für Proxmox ein

  • Methode 2: Bereitstellung virtueller Maschinen mit dem Terraform Proxmox-Anbieter

  • Sichern Sie Proxmox-VMs mit Vinchin Backup & Recovery

  • Verwendung von Terraform mit Proxmox – Häufig gestellte Fragen

  • Fazit

Die Verwaltung von virtuellen Maschinen kann mühsam sein, wenn Sie viele gleichzeitig bereitstellen oder aktualisieren müssen. Wäre es nicht einfacher, diese Aufgaben zu automatisieren? Genau hier kommen Terraform und Proxmox zusammen. Damit verwalten Sie Ihre Infrastruktur als Code – sparen Zeit und reduzieren Fehler. Lassen Sie uns erkunden, wie „terraform proxmox“ Ihre täglichen Abläufe verändern kann.

Was ist Terraform?

Terraform ist ein Open-Source-Tool, mit dem Sie Infrastruktur sicher mithilfe von Code erstellen, ändern und verwalten können. Sie schreiben einfache Konfigurationsdateien, um die gewünschten Ressourcen zu beschreiben – Server, Netzwerke, Speicher – und Terraform erstellt sie für Sie. Es funktioniert auf vielen Plattformen. HashiCorp pflegt Terraform und macht es so zu einer vertrauenswürdigen Wahl im DevOps-Bereich.

Was ist Proxmox?

Proxmox Virtual Environment (VE) ist eine leistungsstarke Open-Source-Plattform für Virtualisierung. Sie ermöglicht das Ausführen von virtuellen Maschinen (VMs) und Containern auf Ihrer Hardware. Proxmox bietet eine webbasierte Oberfläche mit Clustering-Funktionen und unterstützt die Live-Migration von VMs zwischen Hosts. Es ist sowohl in Heimlaboren als auch in Unternehmens-Rechenzentren beliebt.

Warum Terraform mit Proxmox verwenden?

Die Kombination von Terraform mit Proxmox bietet leistungsstarke Automatisierungstools. Sie definieren Ihre VM-Infrastruktur als Code, sodass Bereitstellungen jedes Mal konsistent sind. Wenn Sie zehn identische VMs benötigen, warum dann zehnmal durch Menüs klicken? Mit „terraform proxmox“ konfigurieren Sie einmal – und wenden die Konfiguration anschließend bei Bedarf an.

Sie erhalten auch die Versionskontrolle für Ihre Infrastrukturänderungen. Dies bedeutet weniger manuelle Fehler und eine schnellere Wiederherstellung, falls etwas schiefgeht.

Methode 1: So richten Sie Terraform für Proxmox ein

Die Automatisierung von Proxmox mit Terraform beginnt damit, beide Tools korrekt auf Ihrem Verwaltungsrechner einzurichten.

Terraform installieren

Zuerst muss Terraform selbst auf Ihrem lokalen System oder dort, wo Sie Ihre Infrastruktur verwalten werden, installiert werden. Laden Sie die neueste Version von der offiziellen Website herunter. Befolgen Sie die Anweisungen für Windows, Linux oder macOS; die Installation dauert in der Regel nur wenige Minuten.

Nach der Installation prüfen Sie, ob es funktioniert, indem Sie terraform --version in Ihrem Terminal oder Befehlszeileninterpreter ausführen.

Konfigurieren Sie den Proxmox-Anbieter

Als Nächstes verbinden Sie Terraform mit Ihrem Proxmox-Server, indem Sie ein Anbieter-Plugin verwenden – der Telmate-Anbieter wird hierfür häufig genutzt.

Erstellen Sie ein neues Verzeichnis für Ihre Projektdateien (zum Beispiel: mkdir terraform-proxmox). Erstellen Sie in diesem Ordner eine Datei mit dem Namen main.tf:

terraform {
  required_providers {
    proxmox = {
      source  = "Telmate/proxmox"
      version = ">=2.9.9.11"
    }
  }
}

provider "proxmox" {
  pm_api_url      = "https://your-proxmox-server:8006/api2/json"
  pm_user         = "root@pam"
  pm_password     = "yourpassword" # Use API token or environment variable instead of hardcoding
  pm_tls_insecure = true           # Only use 'true' for testing; see below
}

Ersetzen Sie your-proxmox-server durch Ihre eigentliche Serveradresse; ersetzen Sie yourpassword durch die Anmeldedaten – aber codieren Sie Passwörter niemals direkt im Produktivsystem! Verwenden Sie aus Sicherheitsgründen API-Token oder Umgebungsvariablen (siehe nächster Abschnitt).

Wenn Sie nur lokal testen oder selbstsignierte Zertifikate auf Proxmox VE verwenden, setzen Sie pm_tls_insecure auf true; andernfalls verwenden Sie gültige SSL-Zertifikate in Produktivumgebungen.

Initialisieren Sie das Projekt durch Ausführen von:

terraform init

Dadurch werden die notwendigen Plugins heruntergeladen, sodass Sie fortfahren können, sobald „Terraform wurde erfolgreich initialisiert!“ angezeigt wird.

Schützen von Anmeldeinformationen mit Umgebungsvariablen oder API-Tokens

Das Härtecodieren sensibler Informationen wie Passwörter ist riskant – noch mehr, wenn Code zwischen Teams geteilt wird! Besser:

1. Umgebungsvariablen verwenden:

Definieren Sie Variablen wie zum Beispiel:

  • TF_VAR_pm_api_url

  • TF_VAR_pm_user

  • TF_VAR_pm_password

In unixähnlichen Systemen:

   export TF_VAR_pm_api_url="https://your-prox-server:8006/api2/json"
   export TF_VAR_pm_user="root@pam"
   export TF_VAR_pm_password="supersecret"

2. Verwenden Sie API-Token:

Generieren Sie ein API-Token über Datacenter > Berechtigungen > API-Tokens in der Proxmox-Web-Schnittstelle.

Dann aktualisieren Sie Ihren Provider-Block:

   provider "proxmox" {
     pm_api_url          = var.pm_api_url
     pm_api_token_id     = var.pm_api_token_id
     pm_api_token_secret = var.pm_api_token_secret
     pm_tls_insecure     = false # Empfohlen für Produktion!
   }

3. Variablen in Dateien definieren:

Erstellen Sie eine separate Datei (variables.tf), in der alle oben verwendeten Variablen aufgelistet sind, damit sie leicht zu verwalten sind, ohne Geheimnisse direkt in Code-Repositories preiszugeben.

Durch die Anwendung dieser Methoden bleiben Anmeldeinformationen verborgen – eine unverzichtbare Maßnahme!

Methode 2: Bereitstellung virtueller Maschinen mit dem Terraform Proxmox-Anbieter

Sobald die Einrichtung abgeschlossen ist, können VMs tatsächlich automatisch mithilfe von Konfigurationsdateien erstellt werden, anstatt jedes Mal durch Menüs zu klicken!

Vorbereiten einer Proxmox-VM-Vorlage zum Klonen

Die effizienteste Methode, mehrere ähnliche VMs bereitzustellen, ist das Klonen aus einer vorhandenen Vorlage – ein Basisimage, das bereits mit Betriebssystemeinstellungen konfiguriert ist, aber noch keine eindeutigen Identitäten wie Hostname oder IP-Adresse zugewiesen bekommen hat.

Um eine zuzubereiten:

1. Erstellen Sie eine neue VM über den VM erstellen-Assistenten in der Web-Oberfläche.

2. Installieren Sie ein Betriebssystem (wie Ubuntu Server).

3. Passen Sie die Einstellungen nach Bedarf an (Datenträgergröße/Netzwerk).

4. Fahren Sie die VM herunter, nachdem die Installation abgeschlossen ist.

5. Klicken Sie mit der rechten Maustaste auf seinen Namen unter Datacenter und wählen Sie anschließend In Vorlage konvertieren.

6. Jetzt kann diese Vorlage beliebig oft geklont werden!

Ohne diesen Schritt schlägt das Klonen fehl, da keine Quelle vorhanden ist – bereiten Sie Vorlagen daher immer zuerst vor, bevor Sie Masseneinrichtungen automatisieren!

VM-Konfiguration mithilfe von HCL-Dateien definieren

Definieren wir nun im Inneren einer anderen Datei namens vm.tf, wie unsere neue VM aussehen soll. Hier ist ein Beispiel für einen Ressourcenblock:

resource "proxmox_vm_qemu" "ubuntu_vm" {
  name        = "ubuntu-vm"
  target_node = "prox-node1"
  clone       = "ubuntu-template" # Muss dem vorbereiteten Vorlagennamen entsprechen!
  cores       = 2
  memory      = 2048
  
  disk {
    size    = "20G"
    type    = "scsi"
    storage = "local-lvm"
  }

  network {
    model  = "virtio"
    bridge = "vmbr0"
  }

  os_type    = "cloud-init" 
  ciuser     = var.vm_user         # Verwenden Sie hier die Variable!
  cipassword = var.vm_password     # Passwörter niemals im Klartext codieren!
  
  ipconfig0 =
    "ip=192.168.1.1"

}

Stellen Sie sicher, dass "clone" exakt mit dem zuvor erstellten Vorlagennamen übereinstimmt! Passen Sie CPU-/Speicher-/Festplatten-/Netzwerkwerte gemäß den Anforderungen an – und verwenden Sie nach Möglichkeit stets Variablen anstelle von Klartext-Geheimnissen.1.100/24, gw=1921681.

Verwendung von Cloud-Init für die dynamische Konfiguration

Hinweis: "os_type" ist oben als "cloud-init" festgelegt. Cloud-Init ermöglicht es Ihnen, Benutzerdaten wie Benutzernamen, Passwörter und IP-Adressen zum Zeitpunkt des Starts einzufügen – wodurch jede geklonte VM einzigartig ist, obwohl sie ein gemeinsames Basisimage nutzen!

So aktivieren Sie die Cloud-Init-Unterstützung:

1. Laden Sie offizielle Cloud-Init-ISO-Images über das Menü Datacenter > Storage > Content > Upload hoch.

2. Hängen Sie diese ISO während der anfänglichen Vorlagenerstellung als CD-ROM-Laufwerk an.

3. Bei der Definition von Ressourcen in HCL (os_type, ciuser usw.) dynamische Werte entsprechend den Bereitstellungsanforderungen angeben.

4. Verwenden Sie optional erweiterte Parameter wie "cicustom", wenn benutzerdefinierte Skripte/Konfigurationen bereitgestellt werden.

Dieser Ansatz spart im Vergleich zur manuellen Anpassung nach dem Klonen Stunden ein!

Konfiguration anwenden und Lebenszyklus verwalten

Bereit zum Start? Führen Sie diese Befehle aus Ihrem Projektverzeichnis aus:

terraform plan

Dies zeigt eine Vorschau der Änderungen an – überprüfen Sie die Ausgabe immer, bevor Sie wichtige Aktualisierungen anwenden!

Wenn zufrieden, führen Sie Folgendes aus:

terraform apply

Terraform weist nun den oder die Proxmox-VE-Server über deren API an, neue VMs zu erstellen, die allen angegebenen Parametern entsprechen! Der Fortschritt wird sowohl auf dem Bildschirm als auch im Web-UI-Dashboard angezeigt.

Ressourcen sicher löschen

Später Aufräumen erforderlich?

terraform destroy

entfernt alles, was durch die aktuellen Konfigurationen definiert ist – einschließlich des dauerhaften Löschens von VMs! Seien Sie vorsichtig und erwägen Sie das Hinzufügen von Lebenszyklusregeln wie:

lifecycle {
 prevent_destroy = true 
}

an kritische Ressourcen, damit versehentliche Löschungen nicht auftreten.

Sichern Sie Proxmox-VMs mit Vinchin Backup & Recovery

Nach der Automatisierung der Bereitstellung von virtuellen Maschinen mithilfe von Terraform-Proxmox-Workflows ist die Gewährleistung zuverlässiger Sicherungen für den Geschäftsbetrieb und den Datensicherungsschutz in Umgebungen wie Proxmox VE und darüber hinaus (einschließlich VMware, Hyper-V, oVirt, OLVM, RHV, XCP-ng, XenServer, OpenStack, ZStack und mehr als 15 weiteren gängigen Virtualisierungsplattformen) unerlässlich. Vinchin Backup & Recovery zeichnet sich als Enterprise-Lösung aus, die speziell für die Sicherung virtueller Maschinen in verschiedenen Infrastrukturen konzipiert wurde.

Mit umfassender Kompatibilität – einschließlich vollständiger Unterstützung für inkrementelle Sicherungsmodi wie CBT-basierte Backups auf unterstützten Hypervisoren – bietet Vinchin Backup & Recovery leistungsstarke Funktionen, die auf moderne IT-Anforderungen zugeschnitten sind: Forever-incrementelle Sicherung-Strategien minimieren den Speicherbedarf; Deduplizierung/Komprimierung beschleunigen Aufträge und sparen gleichzeitig Platz; Granulare Wiederherstellung ermöglicht präzise Wiederherstellungsszenarien; geplante Sicherungen gewährleisten regelmäßigen Schutz ohne manuellen Eingriff; plattformübergreifende V2V-Migration vereinfacht die Workload-Mobilität zwischen verschiedenen Hypervisoren – all dies wird über eine intuitive Konsole gesteuert, die komplexe Operationen in klare Arbeitsabläufe umwandelt.

Die Sicherung einer neu bereitgestellten VM mit Vinchin Backup & Recovery umfasst über die benutzerfreundliche Webkonsole lediglich vier Schritte:

✅ Schritt 1: Sichern Sie die Proxmox-VM

Wählen Sie die zu sichernde Proxmox-VM aus

✅ Schritt 2: Wiederherstellung auf der Zielplattform (z. B. Azure oder VMware)

Sicherungsspeicher auswählen

✅ Schritt 3:  Sicherungsstrategien konfigurieren;

Sicherungsstrategien konfigurieren

✅ Schritt 4:  Auftrag absenden.

Auftrag absenden

Weltweit von Tausenden von Unternehmen anerkannt – mit Top-Bewertungen und großem Kundenvertrauen – bietet Vinchin Backup & Recovery eine voll ausgestattete kostenlose Testversion, die 60 Tage lang gültig ist; klicken Sie unten, um umfassenden Datensicherheitsschutz selbst zu erleben!

Verwendung von Terraform mit Proxmox – Häufig gestellte Fragen

F1: Kann ich die Erstellung von Containern zusammen mit virtuellen Maschinen mithilfe von Terraform und Proxmox automatisieren?

Ja – Sie können sowohl QEMU-basierte VMs als auch LXC-Container über unterstützte Ressourcentypen innerhalb derselben Konfigurationen verwalten.

F2: Wie rotiere ich sicher die Anmeldeinformationen, die von meinen Automatisierungsskripten verwendet werden?

Speichern Sie Geheimnisse außerhalb der Codebasis – in Umgebungsvariablen – oder integrieren Sie externe Secret-Manager und verweisen Sie dann dynamisch darauf während der Ausführungen.

Q3: Was sollte ich tun, wenn meine cloud-init-Anpassung nach dem Klonen nicht angewendet wird?

Stellen Sie sicher, dass die cloud-init-ISO während der Vorlagenerstellung ordnungsgemäß angehängt wurde, und überprüfen Sie dann, ob die korrekte Syntax/Werte in die Ressourcendefinitionen übergeben wurden. 

Fazit

Die Automatisierung der Verwaltung virtueller Maschinen mithilfe von Terraform Proxmox erhöht die Effizienz und reduziert überall bei IT-Operationsteams das Risiko menschlicher Fehler! Für zuverlässige Backups, die nahtlos in diese Workflows integriert werden, erwägen Sie Vinchin – eine bewährte Lösung, der weltweit Fachleute wie Sie vertrauen.

Teilen auf:

Categories: VM Backup