MyProx - ein einfaches Enduser-Frontend für Proxmox VE

  Development

2022

MyProx ist eine einfache Weboberfläche, mit der Enduser auf VMs in Proxmox VE zugreifen können.

Motivation

Die Proxmox-Weboberfläche ist für Administratoren geradlinig nutzbar und bestens geeignet. Für einfache Anwender hingegen, die nur eine (oder mehrere) virtuelle Maschinen haben und nur einfachste Dinge tun möchten (etwa Starten und Stoppen der VM, sowie Zugriff auch die VM-Konsole), wäre eine einfachere Oberfläche wünschenswert. Daher und dafür wurde MyProx entwickelt.

MyProx screenshot

Beschreibung

Ziel von MyProx ist es, eine einfache und leichtgewichtige Weboberfläche zu bieten, mit der Endanwender ihnen zugeordnete virtuelle Maschinen nutzen können.

Folgende Anforderungen soll die Lösung erfüllen:

Implementierung

Mit "proxmoxer" ist eine Python-Bibliothek verfügbar, mit der ziemlich geradlinig auf die REST-API von Proxmox zugegriffen werden kann. Für einen bequemeren Zugriff auf die benötigten Operationen kapseln wir die Aufrufe mittels einer neuen ProxAPI-Klasse.

Die Möglichkeiten dieser Klasse werden in einer davon abgeleiteten weiteren Klasse erweitert, insbesondere um Methoden zur Nutzung der Proxmox-Tags zur Annotation - etwa um ein Expiry-Datum speichern zu können.

Mittels des leichtgewichtigen CherryPy-Frameworks wird eine Webanwendung erstellt. Die benötigten HTML-Seiten werden mittels Jinja2-Templating mit den dynamischen Inhalten angereichert. CSS steuert das Aussehen und die weitere Darstellung je nach Bildschirmgröße.

Proxmox VE stellt den Zugriff auf die VMs über einen SPICE-Proxy bereit. Um diesen mit dem SPICE virt-viewer nutzen zu können, muss vorher ein Zugriffsticket angefordert werden und schließlich ein Connection-File generiert werden, das den Viewer mit den notwendigen Daten versorgt.

Auch der Zugriff auf die VNC-Konsole (als Alternative zum Zugriff via SPICE) benötigt gesonderte Authentifizierung über ein Cookie, das zuvor gesetzt werden muss.

Referenzen