-
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_urlTF_VAR_pm_userTF_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

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

✅ Schritt 3: Sicherungsstrategien konfigurieren;

✅ Schritt 4: 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: