Automatisierte Proxmox-Abonnementverwaltung mit Ansible
Bei der Bereitstellung von Proxmox VE in Enterprise-Umgebungen, sei es für neue Standorte, die Erweiterung bestehender Cluster oder die Migration von Plattformen wie VMware, ist Automatisierung unerlässlich. Diese Szenarien umfassen typischerweise die Bereitstellung von Dutzenden oder sogar Hunderten von Knoten über mehrere Standorte hinweg. Das manuelle Aktivieren von Abonnements über die Proxmox-Weboberfläche ist in diesem Umfang nicht praktikabel.
Um Konsistenz und Effizienz zu gewährleisten, sollte jeder Teil des Bereitstellungsprozesses von Anfang an automatisiert werden. Dies umfasst nicht nur die Installation und Konfiguration von Knoten, die automatisierte Cluster-Erstellung, sondern auch die Aktivierung des Proxmox-Abonnements. In der Vergangenheit erforderte dieser Schritt oft eine manuelle Interaktion, was die Bereitstellung verlangsamte und unnötige Komplexität verursachte.
Jetzt gibt es eine saubere Lösung dafür. Mit der Einführung des neuen Ansible-Moduls proxmox_node ist die Abonnementverwaltung vollständig integriert. Dieses Modul ermöglicht es Ihnen, die Abonnementaktivierung als Teil Ihrer Ansible-Playbooks zu handhaben, wodurch es möglich wird, den gesamten Prozess zu automatisieren, ohne jemals die Weboberfläche öffnen zu müssen.
Diese Verbesserung ist besonders wertvoll für Massenbereitstellungen, bei denen Zuverlässigkeit und Wiederholbarkeit am wichtigsten sind. Jeder Knoten kann nun direkt nach dem Booten automatisch konfiguriert, lizenziert und produktionsbereit sein. Es ist ein großartiges Beispiel dafür, wie sich Proxmox VE kontinuierlich zu einer unternehmensfreundlicheren Plattform entwickelt und gleichzeitig die Flexibilität und Offenheit beibehält, die es auszeichnet.
Ansible-Modul: proxmox_node
Da die Automatisierung in modernen IT-Betrieben immer wichtiger wird, ist die Verwaltung der Proxmox VE-Infrastruktur über standardisierte Tools wie Ansible zu einer gängigen Praxis geworden. Bis jetzt, obwohl verschiedene Community-Module zur Interaktion mit Proxmox-Ressourcen verfügbar waren, erforderte die Knotenverwaltung oft benutzerdefinierte Workarounds oder direkten SSH-Zugriff. Diese Lücke wurde nun mit der Einführung des neuen proxmox_node
Moduls geschlossen.
Dieses Modul wurde von unserem Team bei credativ GmbH entwickelt, insbesondere von unserem Kollegen, der in der Community unter dem Handle gyptazy bekannt ist. Es wurde Upstream beigetragen und ist bereits Teil der offiziellen Ansible Community Proxmox Collection, die jedem zur Verfügung steht, der die Collection über Ansible Galaxy oder Automation Controller Integrationen verwendet.
Das proxmox_node
Modul konzentriert sich auf Aufgaben, die direkt mit dem Lebenszyklus und der Konfiguration eines Proxmox VE-Knotens zusammenhängen. Was dieses Modul besonders leistungsfähig macht, ist, dass es direkt mit der Proxmox API interagiert, ohne dass ein SSH-Zugriff auf den Knoten erforderlich ist. Dies ermöglicht einen saubereren, sichereren und API-gesteuerten Ansatz zur Automatisierung.
Das Modul unterstützt derzeit mehrere Schlüsselfunktionen, die im realen Betrieb unerlässlich sind:
- Verwaltung von Abonnementlizenzen
Eine der herausragenden Funktionen ist die Möglichkeit, einen Proxmox VE-Abonnementschlüssel automatisch hochzuladen und zu aktivieren. Dies ist unglaublich hilfreich für Unternehmen, die Cluster in großem Umfang ausrollen, wo die Lizenzierung konsistent und automatisch als Teil des Bereitstellungs-Workflows gehandhabt werden sollte. - Steuerung der Leistungszustände
Die Energieverwaltung von Knoten kann nun über Ansible erfolgen, was es einfach macht, Knoten im Rahmen von Playbook-gesteuerten Wartungsaufgaben oder während automatisierter Clusteroperationen zu starten (über Wake-on-Lan) oder herunterzufahren.
- Verwaltung der DNS-Konfiguration
DNS-Einstellungen wie Resolver und Suchdomänen können deklarativ geändert werden, wodurch sichergestellt wird, dass alle Knoten die gleichen Konfigurationsrichtlinien ohne manuelle Eingriffe befolgen.
- Verwaltung von X509-Zertifikaten
Das Modul ermöglicht es Ihnen auch, die von dem Knoten verwendeten TLS-Zertifikate zu verwalten. Unabhängig davon, ob Sie intern PKI-signierte Zertifikate bereitstellen oder extern ausgestellte verwenden, können Sie mit demproxmox_node
Modul diese über die Automatisierung auf saubere und wiederholbare Weise hochladen und anwenden.
Indem all diese Funktionalität in einem einzigen, API-gesteuerten Ansible-Modul zusammengeführt wird, wird der Prozess der Verwaltung von Proxmox-Knoten wesentlich zuverlässiger und wartungsfreundlicher. Sie müssen nicht mehr mit Shell-Befehlen um pveproxy
herumskripten oder SSH verwenden, nur um Knoteneinstellungen zu verwalten.
Beispiel für die Integration von Abonnements
Das Hinzufügen eines Abonnements zu einem Proxmox VE-Knoten ist so einfach wie die folgende Aufgabe. Dies zeigt zwar den einfachsten Weg für einen einzelnen Knoten, kann aber auch in einer Schleife über ein Dictionary verwendet werden, das die zugehörigen Abonnements für jeden Knoten enthält.
- name: Platzieren einer Abonnementlizenz auf einem Proxmox VE-Knoten community.proxmox.node: api_host: proxmoxhost api_user: gyptazy@pam api_password: password123 validate_certs: false node_name: de-cgn01-virt01 subscription: state: present key: ABCD-EFGH-IJKL-MNOP-QRST-UVWX-YZ0123456789
Fazit
Für uns bei credativ schließt dieses Modul eine echte Lücke in der Automatisierungslandschaft rund um Proxmox und demonstriert, wie fehlende Funktionen in Open-Source-Projekten durch Upstream-Beiträge effektiv angegangen werden können. Es verstärkt auch die breitere Bewegung der deklarativen Verwaltung von Infrastruktur, bei der die Konfiguration versioniert, dokumentiert und leicht reproduzierbar ist.
In Kombination mit anderen Modulen aus der Community Proxmox Collection wie unserem kürzlich erschienenen proxmox_cluster Modul, proxmox_node
hilft, das Bild einer vollständig automatisierten Proxmox VE-Umgebung zu vervollständigen — von der Cluster-Erstellung und VM-Bereitstellung bis hin zur Knotenkonfiguration und Lizenzierung. Wenn Sie Hilfe oder Unterstützung bei der Erstellung von Proxmox VE-basierten Virtualisierungsinfrastrukturen, Automatisierung oder kundenspezifischer Entwicklung zur Anpassung an Ihre Bedürfnisse suchen, helfen wir Ihnen gerne weiter! Sie können uns jederzeit gerne kontaktieren.
Wie und wann man Software-Defined Networks in Proxmox VE einsetzt
Was ist Software-Defined Networking?
Wie man ein SDN konfiguriert
Nachdem wir nun die Grundlagen und Möglichkeiten von Software-Defined Networking (SDN) kennen, wird es interessant, ein solches Netzwerk innerhalb eines Proxmox-Clusters einzurichten.
Proxmox bietet Unterstützung für Software-Defined Networking (SDN), sodass Benutzer verschiedene Arten von Netzwerkkonfigurationen integrieren können, um ihren spezifischen Netzwerkanforderungen gerecht zu werden. Mit Proxmox haben Sie die Flexibilität, aus verschiedenen SDN-Typen auszuwählen, darunter „Simple“, das wahrscheinlich auf unkomplizierte Netzwerkeinrichtungen ohne Bedarf an erweiterten Funktionen abzielt. Für Umgebungen, die eine Netzwerksegmentierung erfordern, ist VLAN-Unterstützung verfügbar, die die Möglichkeit bietet, den Datenverkehr innerhalb verschiedener virtueller LANs zu isolieren und zu verwalten. Komplexere Szenarien profitieren möglicherweise von der QinQ-Unterstützung, die mehrere VLAN-Tags auf einer einzigen Schnittstelle ermöglicht. Auch und sehr interessant für Rechenzentren: Proxmox bietet auch VxLAN-Unterstützung, die Layer-2-Netzwerke über eine Layer-3-Infrastruktur erweitert, was die Anzahl der möglichen VLANs erheblich erhöht, die sonst auf 4096 VLANs begrenzt wären. Zuletzt zu erwähnen ist die EVPN-Unterstützung, die ebenfalls Teil des SDN-Angebots von Proxmox ist, die erweiterte Layer-2- und Layer-3-Virtualisierung ermöglicht und eine skalierbare Steuerungsebene mit BGP (Border Gateway Protocol) für Multi-Tenancy-Umgebungen bietet.
In diesem Leitfaden führen wir Sie durch den Prozess der Einrichtung eines optimierten Software-Defined Network (SDN) innerhalb einer Proxmox-Clusterumgebung. Das Hauptziel ist die Einrichtung eines neuen Netzwerks, einschließlich seiner eigenen Netzwerkkonfiguration, die automatisch auf alle Knoten innerhalb des Clusters übertragen wird. Dieses neu erstellte Netzwerk wird durch seinen eigenen IP-Bereich erstellt, in dem virtuelle Maschinen (VMs) ihre IP-Adressen dynamisch über DHCP erhalten. Diese Einrichtung macht eine manuelle IP-Weiterleitung oder Network Address Translation (NAT) auf den Host-Maschinen überflüssig. Ein weiterer Vorteil dieser Konfiguration ist die Konsistenz, die sie bietet; das Gateway für die VMs bleibt immer konstant, unabhängig von dem spezifischen Host-Knoten, auf dem sie betrieben werden.
Konfiguration
Die Konfiguration von Software-Defined Networking (SDN) ist in den neuesten Proxmox VE-Versionen sehr einfach geworden, da der gesamte Prozess in der Proxmox-Weboberfläche durchgeführt werden kann. Daher verbinden wir uns einfach mit der Proxmox-Management-Weboberfläche, die typischerweise erreichbar ist unter:
- https://HOSTNAME:8006
–> Datacenter
—-> SDN
——–> Zonen
Das Menü auf der rechten Seite bietet die Möglichkeit, eine neue Zone hinzuzufügen, wobei die neue Zone vom Typ Simple ausgewählt wird. Es öffnet sich ein neues Fenster, in dem wir direkt die erweiterten Optionen unten aktivieren. Anschließend werden weitere erforderliche Details angegeben.
ID: devnet01
MTU: Auto
Nodes: All
IPAM: pve
Automatic DHCP: Activate
Die ID stellt die eindeutige Kennung dieser Zone dar. Es kann sinnvoll sein, ihr einen wiedererkennbaren Namen zu geben. Normalerweise müssen wir die MTU-Größe für diese Art von Standard-Setups nicht anpassen. Es kann jedoch immer einige Sonderfälle geben. In den Node-Abschnitten kann diese Zone bestimmten Nodes oder einfach allen zugewiesen werden. Es kann auch Szenarien geben, in denen Zonen nur auf bestimmte Nodes beschränkt sind. Entsprechend unseren erweiterten Optionen können weitere Details wie DNS-Server und auch die Forward- & Reverse-Zonen definiert werden. Für dieses grundlegende Setup wird dies nicht verwendet, aber die automatische DHCP-Option muss aktiviert werden.
Nun werden die nächsten Schritte im Kapitel VNets durchgeführt, wo die zuvor erstellte Zone mit einem virtuellen Netzwerk verknüpft wird. Im selben Schritt werden wir auch zusätzliche Netzwerkinformationen wie den Netzwerkbereich usw. angeben.
Beim Erstellen eines neuen VNet muss eine Kennung oder ein Name angegeben werden. Es ist oft sinnvoll, den Namen des virtuellen Netzwerks an den zuvor generierten Zonennamen anzupassen. In diesem Beispiel werden die gleichen Namen verwendet. Optional kann ein Alias definiert werden. Wichtig ist die Auswahl der gewünschten Zone, die verwendet werden soll (z. B. devnet01). Nach dem Erstellen des neuen VNet haben wir die Möglichkeit, im selben Fenster ein neues Subnetz zu erstellen, indem wir auf die Schaltfläche Create Subnet klicken.
Innerhalb dieses Dialogs werden einige grundlegende Netzwerkinformationen eingegeben. Im Allgemeinen müssen wir das gewünschte Subnetz in CIDR-Notation angeben (z. B. 10.11.12.0/24). Die Definition der IP-Adresse für das Gateway ist ebenfalls möglich. In diesem Beispiel wird das Gateway auf der IP-Adresse 10.11.12.1 platziert. Wichtig ist die Aktivierung der Option SNAT. SNAT (Source Network Address Translation) ist eine Technik, um die Quell-IP-Adresse des ausgehenden Netzwerkverkehrs so zu ändern, dass es so aussieht, als ob er von einer anderen IP-Adresse stammt, die normalerweise die IP-Adresse des Routers oder der Firewall ist. Diese Methode wird häufig verwendet, um mehreren Geräten in einem privaten Netzwerk den Zugriff auf externe Netzwerke zu ermöglichen.
Nach dem Erstellen und Verknüpfen der Zone, des VNet und des Subnetzes kann die Konfiguration einfach auf der Weboberfläche angewendet werden, indem auf die Schaltfläche „Apply“ geklickt wird. Die Konfiguration wird nun mit den gewünschten Nodes synchronisiert (in unserem Beispiel alle).
Nutzung
Wenn es um DevOps und Automatisierung geht, ist dies auch in der API verfügbar, wo virtuelle Maschinen dem neuen Netzwerk zugewiesen werden können. Eine solche Aufgabe könnte im folgenden Beispiel in Ansible wie folgt aussehen:
- name: Create Container in Custom Network
community.general.proxmox:
vmid: 100
node: de01-dus01-node03
api_user: root@pam
api_password: {{ api_password }}
api_host: de01-dus01-node01
password: {{ container_password }}
hostname: {{ container_fqdn }}
ostemplate: 'local:vztmpl/debian-12-x86_64.tar.gz'
netif: '{"net0":"name=eth0,ip=dhcp,ip6=dhcp,bridge=devnet01"}'
Virtuelle Maschinen, die diesem Netzwerk zugewiesen sind, erhalten sofort IP-Adressen innerhalb unseres zuvor definierten Netzwerks 10.11.12.0/24 und können ohne weitere Bedürfnisse auf das Internet zugreifen. VMs können auch über Nodes im Cluster verschoben werden, ohne dass das Gateway angepasst werden muss, selbst wenn ein Node heruntergefahren oder für Wartungsarbeiten neu gestartet wird.
Fazit
Zusammenfassend lässt sich sagen, dass die Integration von Software-Defined Networking (SDN) in Proxmox VE einen großen Vorteil aus technischer Sicht, aber auch aus Benutzersicht darstellt, da diese Funktion auch über die Proxmox-Weboberfläche nutzbar ist. Diese einfache Konfiguration ermöglicht es auch Personen mit begrenzter Netzwerkerfahrung, noch komplexere Netzwerkeinrichtungen einzurichten und zu verwalten.
Proxmox erleichtert es auch mit einfachen SDNs, grundlegende Netzwerke zu erstellen, die virtuelle Maschinen mit dem Internet verbinden. Sie müssen sich nicht mit komplizierten Einstellungen oder Gateways auf den Hauptknoten befassen. Dies beschleunigt die Inbetriebnahme virtueller Setups und verringert die Wahrscheinlichkeit von Fehlern, die zu Sicherheitsproblemen führen könnten.
Für Leute, die gerade erst anfangen, hat Proxmox eine benutzerfreundliche Website, die es einfach macht, Netzwerke einzurichten und zu steuern. Das ist wirklich hilfreich, weil es bedeutet, dass sie nicht viel kompliziertes Zeug lernen müssen, um loszulegen. Stattdessen können sie mehr Zeit damit verbringen, mit ihren virtuellen Computern zu arbeiten, und sich nicht zu viele Sorgen darüber machen, wie sie alles verbinden.
Leute, die mehr über Technologie wissen, werden es mögen, wie Proxmox ihnen erlaubt, komplexe Netzwerke einzurichten. Das ist gut für große Setups, weil es das Netzwerk besser laufen lassen, mehr Verkehr bewältigen und verschiedene Teile des Netzwerks voneinander trennen kann.
Genau wie andere nützliche Integrationen (z. B. Ceph) bietet auch die SDN-Integration große Vorteile für seine Benutzerbasis und zeigt die laufende Integration nützlicher Tools in Proxmox.