Virtualisierung: Wie man eine Proxmox-Infrastruktur mit Terraform bereitstellt

Mit Terraform definiert man komplexe Proxmox-Infrastrukturen und automatisiert Abläufe. Dabei arbeiten Proxmox-API, Templates und Terraform-Provider zusammen.

Artikel verschenken
vorlesen Druckansicht
,
Lesezeit: 23 Min.
Inhaltsverzeichnis

Proxmox Virtual Environment (VE) stellt ein System mit klar umrissenen Schnittstellen bereit, dessen Verwaltungslogik für eine vollständig automatisierbare Infrastruktur geeignet ist. Das quelloffene Tool Terraform regelt den Aufbau der Infrastruktur in der Cloud und on Premises wiederholbar und automatisiert (Infrastructure as Code, IaC). Die Arbeitsweise wirkt auf den ersten Blick schlicht: ein Provider, ein paar Konfigurationsdateien (HCL – HashiCorp Configuration Language), ein Plan, ein Apply. Sie entwickelt jedoch bei näherer Betrachtung eine eigene Tiefe.

Das Zusammenspiel von Proxmox-API, Templates, interner Providerstruktur, Anforderungen an Berechtigungen und dem Verhalten des State-Modells (Zustand der Infrastruktur) ermöglicht reproduzierbare, automatisierte Bereitstellungen ohne Nacharbeiten. Terraform arbeitet auch mit Cloud-init zusammen, um die Automatisierung einer Proxmox-Umgebung weiter voranzubringen. Der Artikel stellt das Bereitstellen einer Proxmox-Infrastruktur mit den Mitteln von Terraform vor.

Mehr zum Thema Virtualisierung
iX-tract
  • Das Infrastructure-as-Code-Tool Terraform bildet Proxmox-Infrastrukturen ĂĽber Konfigurationsdateien reproduzierbar, versionierbar und nachvollziehbar ab.
  • Ăśber die API lassen sich alle Systemobjekte fĂĽr das Bereitstellen, Migrieren und Klonen virtueller Maschinen darstellen.
  • Aus einer Terraform-Definition lassen sich viele VMs erzeugen.
  • Das Berechtigungsmodell und das Zusammenspiel der Proxmox- und Terraform-Definitionen können im Betriebsalltag Fallstricke bereithalten.

Der Einstieg beginnt bei Proxmox: Dessen API bildet alle Objekte ab, die für die Provisionierung relevant sind, und Terraform nutzt das, um die Struktur einer kompletten Umgebung in einem Satz deklarativer Definitionen zu fassen. CPU-Topologien, Speicherzuweisungen, Netzwerkbrücken, Cloud-init-Parameter, Storage-Volumes, VM-IDs, Klonvorgänge und serielle Konsolen fließen in eine einheitliche Sprache, die unabhängig von der Proxmox-Oberfläche verwaltet werden kann. Die Vorgänge lassen sich in der Shell von Proxmox erledigen oder über eine SSH-Verbindung. Die folgenden Abschnitte zeigen an Beispielen, wie man diese Struktur aufbaut, wie Terraform sie interpretiert und wie der vollständige Lebenszyklus einer neuen VM kontrolliert abläuft.

Das war die Leseprobe unseres heise-Plus-Artikels "Virtualisierung: Wie man eine Proxmox-Infrastruktur mit Terraform bereitstellt". Mit einem heise-Plus-Abo können Sie den ganzen Artikel lesen.