23 Juni 2025

Effiziente Proxmox Cluster Erstellung durch Automatisierung mit Ansible und dem proxmox_cluster Modul

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.

 

Kategorien: credativ® Inside Debian HowTos
Tags: Ansible Ansible Modul API Automation Automatisierung Hilfe proxmox proxmox_cluster

über den Autor

gyptazy

Senior DevOps Consultant

zur Person

In my tech repertoire, FreeBSD and federated services stand not just as a personal preference but as a symbol of a commitment to the ethos of open-source. I am a fervent believer in the symbiotic relationship between developers including DevOps, SysOps and the open source community. As I continue to lead teams in the ever-evolving landscape of technology, their dedication to open-source contributions and advocacy for decentralized and federated services echoes not only in the code they write but in the ethos they instill within the teams.

Beiträge ansehen


Beitrag teilen: