greenbutterfly - stock.adobe.com
Wie Sie mit Proxmox Rechenzentren automatisieren
Die Virtualisierungslösung Proxmox kommt immer häufiger als Alternative zu VMware vSphere zum Einsatz. Dieser Beitrag zeigt die Möglichkeiten zur Automatisierung.
Proxmox VE gehört zu den beliebtesten Lösungen für die Virtualisierung von Servern und Containern. Der Einsatz ist sogar kostenlos möglich. Für erfahrene Anwender bietet Proxmox auch Automatisierungsmöglichkeiten mit Vorlagen, Klon-Funktionen und der Unterstützung von cloud-init. In diesem Beitrag wird generell auf die Möglichkeiten von Proxmox VE eingegangen. Auch das Thema Vorlagen wurde in einem Beitrag umfassend behandelt.
Im folgenden Text werden diese Möglichkeiten noch um weitere Automatisierungsoptionen wie cloud-init erweitert.
Automatisierung in Proxmox mit cloud-init, Vorlagen und Klonen
Vorlagen lassen sich in Proxmox zusammen mit Klon-Vorgängen nutzen. Parallel dazu kann cloud-init zum Einsatz kommen. In Proxmox VE ermöglicht das Klonen von virtuellen Maschinen (VMs) eine effiziente Bereitstellung mehrerer identischer Systeme. Administratoren erstellen eine Vorlage (Template) als Basis-VM, die alle erforderlichen Einstellungen und Software enthält. Diese Vorlage wird dann nicht direkt genutzt, sondern als Ausgangspunkt für das Klonen weiterer Instanzen verwendet. Der Vorteil dieser Methode liegt darin, dass jede geklonte VM auf den exakt gleichen Konfigurationen aufbaut, was eine gleichbleibende Umgebung sicherstellt. Das Klonen spart Zeit und Ressourcen, insbesondere in großen Infrastrukturen, da es ohne vollständige Neuinstallation der VM möglich ist. Proxmox VE bietet sowohl das Full-Clone- als auch das Linked-Clone-Verfahren. Während ein Full Clone eine eigenständige Kopie der VM erstellt, nutzt ein Linked Clone die Daten der Vorlage, was Speicherplatz angeht. Die technischen Vorgänge dazu finden Sie hier in einem eigenen Beitrag.
So nutzen Sie cloud-init für die Automatisierung
Mit cloud-init lassen sich nicht nur VMs und Container in Proxmox automatisieren, sondern generell verschiedene Lösungen in hybriden Netzwerken. Mehr zu diesem Thema finden Sie hier. Die Verwendung von cloud-init ist daher durchaus standardisierbar. In Proxmox lässt sich die Erstellung von VMs und Containern direkt automatisieren und mit den Möglichkeiten von Vorlagen und Klon-Funktionen kombinieren.
Die Verwendung von cloud-init in Kombination mit Proxmox sowie der Einsatz von Vorlagen und Klonen optimiert den Bereitstellungsprozess virtueller Linux-Umgebungen erheblich. Durch die Erstellung von cloud-init-konfigurierten Vorlagen lassen sich VMs automatisiert mit vordefinierten Einstellungen wie Netzwerkkonfigurationen, Benutzerkonten und SSH-Schlüsseln bereitstellen, was die Einrichtungszeit drastisch verkürzt.
Statt jede VM individuell zu konfigurieren, erstellen Administratoren eine einmalige Vorlage, die per Klonungsprozess schnell vervielfältigt wird. Das spart Zeit und reduziert Fehler, da alle Instanzen konsistente Konfigurationen aufweisen. Zudem erlaubt cloud-init eine dynamische Anpassung an spezifische Anforderungen beim Start der VM, wodurch sich die Bereitstellung für unterschiedliche Einsatzszenarien wie Testumgebungen und Produktionssysteme weiter automatisieren lässt.
Um ein cloud-init-Image zu verwenden, lädt der Admin zunächst ein passendes Image herunter und importiert es in Proxmox. Offizielle Ubuntu-Cloud-Images, die bereits für cloud-init vorkonfiguriert sind, eignen sich für diesen Zweck. Zuerst erstellt man eine leere VM über die Proxmox-Shell oder eine SSH-Verbindung, etwa mit dem Befehl qm create 110 für eine VM mit der ID 110. Nach dem Herunterladen eines Images mit wget https://cloud-images.ubuntu.com/oracular/current/oracular-server-cloudimg-amd64.img, lässt sich dieses mit qm importdisk 110 oracular-server-clouding-amd64.img local-lvm in die VM als Datenträger einbinden. Anschließend wird das Image als Laufwerk über SCSI im Bereich Hardware der VM hinzugefügt und die Startreihenfolge so konfiguriert, dass die VM von diesem Datenträger startet.
Dabei ist local-lvm der Speicher in Proxmox. Nach Auswahl der VM erscheint der verbundene Datenträger. Das heruntergeladene Image wird in die bereits erstellte VM importiert. Anschließend lässt sich die neu hinzugefügte Festplatte durch Bearbeiten mit der VM verbinden. Es empfiehlt sich, unter Bus/Device die Option SCSI auszuwählen. Weitere Einstellungen sind optional. Mit einem Klick auf Hinzufügen wird das Image als Laufwerk korrekt mit der VM verbunden. Zusätzlich ist es sinnvoll, unter Optionen\Startreihenfolge sicherzustellen, dass order=any gesetzt ist, damit die VM von diesem Datenträger startet. Weiterhin ist es hilfreich, eine Netzwerkverbindung über Hardware\Hinzufügen\Netzwerkkarte hinzuzufügen.
Danach lässt sich über Hardware\Hinzufügen\cloudinit-Laufwerk ein cloud-init-Laufwerk an die VM anbinden, wobei einer verfügbaren Proxmox-Datenspeicher genutzt werden kann.
In den VM-Einstellungen unter cloud-init lässt sich festlegen, welche Daten innerhalb der VM automatisch konfiguriert werden. So können etwa ein Benutzer mit Kennwort, DNS-Domäne und DNS-Server, SSH-Schlüssel sowie IP-Konfiguration vorgegeben werden, und die Paketaktualisierung erfolgt ebenfalls automatisiert. Die genauen Einstellungen variieren je nach Hardware. Bei weiteren Netzwerkadaptern können auch deren Konfigurationen über cloud-init definiert werden. Nach Anpassung der Einstellungen wird durch einen Klick auf Image neu erzeugen sichergestellt, dass die vorgegebenen Konfigurationen im Image gespeichert sind.
Nach dem Start der VM übernimmt diese alle per cloud-init spezifizierten Einstellungen und ist sofort einsatzbereit. Die Anmeldung erfolgt nach Erstellung über den definierten Benutzer und das angegebene Kennwort.
Wie Sie eigene cloud-init-Images erstellen
Admins können auch eigene cloud-init-Images erstellen, indem sie eine VM manuell mit allen gewünschten Einstellungen und Programmen konfigurieren. Über den Befehl sudo apt install cloud-init wird cloud-init in der VM installiert, um ein benutzerdefiniertes Image zu erstellen. Nach der Installation von cloud-init wird erneut ein cloud-init-Laufwerk hinzugefügt. Alle Einstellungen, die cloud-init für die jeweilige VM unterstützt, können dann im Menüpunkt cloud-init der VM festgelegt werden.