Effiziente Proxmox Cluster Erstellung durch Automatisierung mit Ansible
Die manuelle Einrichtung und Verwaltung von Servern ist in der Regel zeitaufwendig, fehleranfällig und schwer skalierbar. Gerade bei umfangreicheren Rollouts, beim Aufbau komplexer Infrastrukturen oder auch der Migration von einer anderen Virtualisierungsumgebung stoßen klassische, manuelle Prozesse schnell an ihre Grenzen. Eine konsequente Automatisierung bietet hier eine effektive und nachhaltige Lösung.
Proxmox stellt eine leistungsstarke Plattform zur Virtualisierung dar, die sich besonders durch ihre Flexibilität und die breite Funktionsvielfalt auszeichnet. In Kombination mit Ansible, einem agentenlosen Automatisierungswerkzeug, lässt sich die Verwaltung ganzer Systemlandschaften erheblich vereinfachen. Mit Ansible können definierte Konfigurationen in Form von Playbooks erstellt und wiederverwendet werden. Dadurch wird sichergestellt, dass Abläufe konsistent, nachvollziehbar und reproduzierbar sind.
Um die automatisierte Bereitstellung kompletter Proxmox-Cluster zu ermöglichen, hat unser Mitarbeiter, der auch unter dem Pseudonym gyptazy in der Open-Source Szene bekannt ist, ein eigenes Ansible-Modul namens proxmox_cluster entwickelt. Es übernimmt dabei alle notwendigen Schritte um einen Proxmox Cluster zu erstellen und mit weiteren Nodes beizutreten. Dieses Modul ist nun auch in dem offiziellen Ansible Upstream Community Proxmox Repository enthalten und lässt sich ab Version 1.1.0 über Ansible Galaxy installieren. Auf diese Weise reduziert sich der manuelle Aufwand deutlich. Mehr zu den Hintergründen können in seinem Blog-Post „How My BoxyBSD Project Boosted the Proxmox Ecosytem“ gefunden werden.
Durch den Einsatz dieser Lösung wird nicht nur Zeit gespart, sondern auch eine Grundlage für skalierbare und wartungsarme Strukturen geschaffen. Durch die Erstellung eines eigenen Moduls anstelle von fehleranfälligen Tasks in Ansible, die meist auf das “Shell” oder “Command” Modul auswichen, wird über das Modul proxmox_cluster vollständig die Proxmox API benutzt. Damit lässt es sich auch in verschiedenen Scopes ausführen und benötigt keinen SSH Zugriff.
Dieser Automatisierungslösung ermöglicht es, komplexe Setups effizient bereitzustellen und schafft so die Voraussetzung für stabile, zukunftssichere IT-Umgebungen, die sich auch später problemlos erweitern lassen und nach einem einheitlichen Muster aufgesetzt werden.
Vorteile
Durch die Nutzung des Moduls proxmox_cluster zur Proxmox Cluster Erstellung ergeben sich weitere zentrale Vorteile in einer IT-Landschaft. Der Fokus liegt dabei auf einer sicheren, flexiblen und skalierbaren Nutzung der Proxmox API, sowie der verbesserten Fehlerbehandlung und der vereinfachten Integration für unterschiedliche Einsatzzwecke:
- Nutzung der Proxmox API
- Beibehaltung des Proxmox Authentifizierungs-Systems
- API Token Support
- Kein SSH Zugriff notwendig
- Nutzung in unterschiedlichen Scopes
- Von einem Deployment-Host
- Von einem lokalen System
- Im Scope des affektierten Systems
- Verbessertes Error-Handling durch die API Abstraktion
Ansible Proxmox Modul: proxmox_cluster
Das neu hinzugefügte proxmox_cluster
Modul in Ansible vereinfacht die automatisierte Bereitstellung von Proxmox VE Clustern erheblich. Mit nur einem einzigen Task lässt sich ein vollständiger Cluster nahtlos erstellen, wodurch der manuelle Aufwand und die Komplexität deutlich reduziert werden.
Einen Cluster erstellen
Um einen Cluster nun zu initialisieren bzw. zu erstellen benötigt es bei der Nutzung des Moduls folglich nur noch einen Task in Ansible:
- name: Create a Proxmox VE Cluster community.proxmox.proxmox_cluster: state: present api_host: proxmoxhost api_user: root@pam api_password: password123 api_ssl_verify: false link0: 10.10.1.1 link1: 10.10.2.1 cluster_name: "devcluster"
Nachfolgend wird der Proxmox VE Cluster erstellt und kann von anderen Nodes zum Beitreten genutzt werden.
Einem Cluster beitreten
Weitere Nodes können nun ebenfalls dem Cluster mit einem einzelnen Task beitreten. Zusammen mit der Nutzung eines dynamic Inventories lässt sich dabei sehr gut über eine Liste von Nodes aus einer Gruppe iterieren und im Rahmen eines Loops (Schleife) dem Cluster beitreten. Somit lassen sich auch schnell größere Proxmox Cluster erzeugen.
- name: Join a Proxmox VE Cluster community.proxmox.proxmox_cluster: state: present api_host: proxmoxhost api_user: root@pam api_password: password123 master_ip: "{{ primary_node }}" fingerprint: "{{ cluster_fingerprint }}" cluster_name: “devcluster"
Cluster Join Informationen
Für den Beitritt eines Proxmox Clusters benötigt man grundsätzlich die „Join Informationen“ des Clusters. Damit diese nicht manuell für jeden Cluster definiert werden müssen, lässt sich dies ebenfalls automatisieren. Im Rahmen des Features wurde auch das neue Modul cluster_join_info mitgeliefert. Dies ermöglicht es automatisiert die notwendigen Informationen über die API abzurufen und entsprechend für die weitere Verwendung bereitzustellen.
- name: List existing Proxmox VE cluster join information community.proxmox.proxmox_cluster_join_info: api_host: proxmox1 api_user: root@pam api_password: "{{ password | default(omit) }}" api_token_id: "{{ token_id | default(omit) }}" api_token_secret: "{{ token_secret | default(omit) }}" register: proxmox_cluster_join
Fazit
Während über Automatisierung im Rahmen von Virtualisierungstechniken meist über das automatisierte Provisionieren von Gästen bzw. Virtuellen Maschinen (VMs) gesprochen wird zeigt dieser Ansatz, dass man auch mit der Automatisierung bereits viel tiefer in der drunterliegenden Infrastruktur ansetzen kann. Auch sind hierbei vollständige Automatisierungen möglich bei der die Nodes bereits mit einem kundenspezifischen Image mit Proxmox VE bereitgestellt werden und dann nachfolgend automatisiert den Cluster erstellen. Gerne unterstützen wir Sie als offizieller Proxmox Partner bei der Realisierung einer vollumfassenden Automatisierung rund um Proxmox Produkte.
ProxLB – Die neue Version des Loadbalancers für Proxmox Cluster steht in Version 1.1.0 bereit!
Kein April Scherz – endlich ist sie da – die langersehnte Version 1.1.0 von ProxLB wurde heute offiziell veröffentlicht! Diese neue Version bringt ein vollständiges Code-Refactoring mit sich, das nicht nur die Wartung erleichtert, sondern auch die Grundlage für zukünftige Erweiterungen schafft. Außerdem werden zahlreiche Bugs behoben und weitere Features implementiert. ProxLB ist das Ergebnis des Engagements unseres Mitarbeiters Florian Paul Azim Hoberg, besser bekannt als gyptazy, der mit seinem Wissen und seiner Leidenschaft eine leistungsfähige Open-Source-Lösung für Proxmox-Cluster entwickelt hat. Wir als credativ GmbH unterstützen dabei die Tätigkeiten in diesem open-source Projekt und freuen uns, wenn dies auch künftig noch mehr von der Community aufgenommen und genutzt wird. Künftig wird ProxLB dabei auch weitere interessante Features wie ein dynamisches Energiemanagement (ähnlich zu DPM) und ein automatisiertes Node-Security-Patching integriert bekommen, die in der Community bereits oft angefragt wurden.
Lücke zu VMware schließen
ProxLB schließt die Lücke, die durch das Fehlen eines Dynamic Resource Scheduler (DRS) in Proxmox entstanden ist. Als leistungsstarker Load Balancer werden dabei Workloads bzw. virtuelle Maschinen (VMs) intelligent über alle Nodes im Cluster migriert, welches für eine insgesamt optimale Nutzung der Ressourcen in einem Proxmox Cluster sorgt. Dabei berücksichtigt ProxLB die CPU-, Speicher- und Festplattenauslastung, um Überprovisionierung zu vermeiden und die Leistung zu maximieren.
Wartungsmodus
Affinitätsregeln im Griff
ProxLB zeichnet sich zudem durch seine tiefe Integration in die Proxmox-API aus. Die gesamte Access Control List (ACL) wird unterstützt, sodass keine zusätzlichen SSH-Zugriffe erforderlich sind. Dies sorgt nicht nur für mehr Sicherheit, sondern auch für eine einfachere Verwaltung. Egal ob als Einmal-Operation oder im Daemon-Modus: ProxLB ist flexibel einsetzbar und bietet eine transparente und effiziente Lösung für das Cluster-Management. Dank der offenen und freien Lizenz können Nutzer die Software an ihre Bedürfnisse anpassen und zur Weiterentwicklung beitragen.
Download
ProxLB lässt sich auf verschiedensten Weisen installieren und betreiben. So kann ProxLB auf dedizierter Hardware, einer dedizierten VM (auch innerhalb des Clusters), in LXC, auf einem Proxmox Node selber oder gar in einem Docker Container durch die bereitgestellten Container-Images betrieben werden. Das Installations-Kapitel im Projekt selbst erklärt dies dabei etwas detaillierter und beschreibt auch die Nutzung des Projekt eigenen Repositorys für Debian basierende Systeme.
Typ | Download |
Debian Package | proxlb_1.1.0_all.deb |
Container Image | cr.gyptazy.com/proxlb/proxlb:latest |
Fazit
Einen Merkzettel zum Teilen können Sie hier herunterladen: ProxLB Flyer