Mit dem PVE VDI Client lässt sich auf eine einfache Art und Weise eine direkte Verbindung zu einem Proxmox Server herstellen und ermöglicht es Benutzern
über das SPICE Protokoll eine Remote Desktop Verbindung zu einer VM herzustellen. (SPICE muss natürlich in der VM aktiviert sein.)
26.02.2023 - Anleitung aktualisiert (No module named 'tkinter') 17.04.2022 - Anleitung aktualisiert (VDI Client 1.0.3, Linux Installation, Themes)
Proxmox Setup
- Gruppe erstellen
- Benutzer erstellen
- Rolle erstellen
- VM berechtigen
Datacenter → Permissions → Groups, Create
Datacenter → Permissions → Users, Add
Datacenter → Permissions → Roles, Create (der VDI Client benötigt: VM.Audit, VM.Console, VM.PowerMgmt)
Virtual Machine → VM auswählen → Permissions, Add
Windows Installation
- virt-viewer installieren
- PVE VDI Client installieren
- vdiclient.ini erstellen und anpassen
Virt-viewer (virt-viewer-x64-11.0-1.0.msi) und PVE VDI Client (vdiclient-1.0.2-64.msi) installieren.
Der PVE VDI Client benötigt eine vdiclient.ini. Er sucht automatisch nach der Datei in:
%APPDATA%\VDIClient\vdiclient.ini %PROGRAMFILES%\VDIClient\vdiclient.ini # funktioniert nicht, wird nicht gefunden
Oder man gibt bei der Verknüpfung mit –config den Pfad zur vdiclient.ini an.
"C:\Program Files\VDIClient\vdiclient.exe" --config .\vdiclient.ini # ini im aktuellen Verzeichnis
Meine minimale vdiclient.ini:
[General] title = VDI Login theme = LightBlue icon = vdiicon.ico logo = vdiclient.png kiosk = False inidebug = False [Authentication] auth_backend = pve auth_totp = false tls_verify = false [Hosts] pmx01.bachmann.lan = 8006
Anwendung starten, mit Benutzer und Passwort anmelden und VM auswählen.
Funktioniert mit einer Windows und Linux VM problemlos.
Linux Installation
getestet unter Ubuntu 21.10
$ apt install -y git python3-pip virt-viewer $ git clone https://github.com/joshpatten/PVE-VDIClient.git $ cd PVE-VDIClient $ bash requirements.sh $ cp vdiclient.py /usr/local/bin $ chmod +x /usr/local/bin/vdiclient.py # ich musste noch zusätzlich diese beiden Pakete installieren $ apt install xcb libxcb-xinerama0
unter Ubuntu 22.10 beim starten der vdiclient.py
... import tkinter as tk ModuleNotFoundError: No module named 'tkinter' # Paket nachinstallieren $ apt install python3-tk
Der PVE VDI Client sucht die vdiclient.ini automatisch unter:
~/.config/VDIClient/vdiclient.ini /etc/vdiclient/vdiclient.ini /usr/local/etc/vdiclient/vdiclient.ini
Im Terminal vdiclient.py starten.
Für ein Desktop Icon erstelle ich die Datei ~/Desktop/vdiclient.desktop mit folgendem Inhalt:
[Desktop Entry] Type=Application Terminal=false Exec=/usr/local/bin/vdiclient.py Name=VDI Client Comment=Proxmox VDI Client Icon=/opt/PVE-VDIClient/vdiicon.ico # Pfad zum Icon anpassen
Dann noch rechte Maustaste über das neue Icon und Allow Launching auswählen.
PVE VDI Client Themes
Unter Windows und Linux den vdiclient Client mit der Option –list_themes aufrufen.
Gewünschtes Theme dann einfach in der vdiclient.ini eintragen. (klappt unter Windows erst mit der Version 1.0.3)
Sehr schöne Anleitung, habe es bei mir problemlos eingerichtet.
Kann man das auch unter Linux machen, ich habe die Pakete installiert aber so schön mit dem Login und dann Auswahl der VM wie unter Windows bekommen ich leider nicht hin?
Gruß und frohe Ostern
Jürgen
Hallo Jürgen,
läuft auch unter Linux.
Hab’s mal unter Ubuntu getestet und meine Anleitung erweitert.
Gruß, Michael…
Moin Michael,
danke dir, da fehlte mir ein Schritt.
Gruß und frohe Ostern
Jürgen
Hallo Michael,
danke für die tolle Anleitung, bis zum Login bin ich gekommen, aber dann??? Ich sehe die freigegebenen Desktops, wenn ich sie aufrufe kommt “Verbindung zum Grafikserver konnte nicht aufgebaut werden” Von der ProxMox GUI funktioniert zumindest auf einem Node der Ubuntu Desktop über Spice.
Irgendweine Idee wo ich noch schrauben muss?
Gruß
Detlef
Vielleicht in der vdiclient.ini im Abschnitt [Hosts] mal die IP eintragen?
da steht sie drin, sonst würde ich wohl die VMs nicht sehen :-))
Stimmt ;)
Setz mal in der ini
inidebug = True
keine Änderung, was ich ich in jedem Fall mal hinbekommen habe ist Spice direkt über die PVE WebGui. Da lag der Fehler an fehlenden einträgen in der hosts.
Über den VDI Client sehe ich im syslog nur die Anmeldung des VDI Users. Keine Fehler im syslog von spice. Also entweder gibt es keine Fehler oder ich komme garnicht bis zum host. Finde auch keine logfiles an den Stellen, die ich mir bisher ergoogelt habe.
Kann es sein, dass der VDI Client mit meinem Clustersetup ein Problem hat?
Der Cluster könnte vielleicht das Problem sein, kann ich aber nichts zu sagen, da ich keinen habe.
Hast du eine Firewall oder Virenscanner (Security Suite) dazwischen, die was blocken könnte?
keine Änderung immernoch kein connect zum Grafikserver
ok, an der Stelle steige ich nun endgültig aus. Das wahnsinnige an der Sache ist: der VDI Cllient startet auf einem Host sogar eine VM wenn die down war, kann sich aber dann nicht auf deren Grafikserver verbinden, das wird langsam zu hoch für mich
Etwas spät, aber vielleicht bringts wem anders mal was…
Hatte genau das selbe Problem. Die VM’s wurden aufgelistet, VM’s die down waren wurden beim Versuch zu verbinden auch gestartet, aber es war nicht möglich eine Verbindung zum Grafikserver herzustellen.
Bei mir war effektiv das Problem, dass ich im vdiclient.ini file die Domain bei [Hosts] und bei [SpiceProxyRedirect] nicht korrekt gesetzt hatte. Um diese herauszufinden, kann im vdiclient.ini file das Property inidebug = True gesetzt werden. Beim Verbindungsversuch öffnet sich dann ein Python-Script, darin wird auf Zeile 4 unter host-subject die Domain angezeigt:
host-subject = OU=PVE Cluster Node,O=Proxmox Virtual Environment,CN=proxmox.meinedomain.ch
Diese proxmox.meinedomain.ch (oder was auch immer bei euch steht) muss im vdiclient.ini eingetragen werden.
[Hosts]
# Hosts are entered as `IP/FQDN = Port`
192.168.1.50 = 8006
proxmox.meinedomain.ch = 8006
[SpiceProxyRedirect]
# The Spice Proxy provided by the Proxmox API may need to have its host/port rewritten
# These rewrite rules are written `IP:port = IP:port`
# 1. Use the inidebug and read the current proxy=pve1.example.com:3128
# 2. Add your proxmox ip to the right side e.g. 123.123.123.123:6000
proxmox.meinedomain.ch:3128 = 192.168.1.50:3128
Hi.
Gute Anleitung.
Wie ist bitte die Grafik-Performance.
Geht Video übertragen flüssig (z.B. Youtube-Video)?
Die ist nicht wirklich gut. Bei Youtube Videos ist meistens Bild und Ton versetzt.
Flüssige Videos gucken ist mit den Standardeinstellungen nicht möglich.
Lässt sich aber bestimmt noch optimieren.
Proxmox ist eine feine Sache, aber um Desktop-VM’s nach draußen zu bringen leider etwas umständlich mit dem Ticket System.
Es gelang mir auch keine ssh-Verbindung mit spice. Das ist mit fedora/centos/RHEL bedeutend einfacher:
$ virt-viewer --connect qemu+ssh://USER@SERVERIP/system VM-NAME
Lässt sich wunderbar ohne Fummelei in Startscripts einbauen.
Performance ist im LAN gut, Videos ruckeln nur bei schnellen Bewegungen etwas, Bild und Ton sind syncron.
Danke für die Info, werde ich mal testen.
Hallo leider funktioniert es bei mir nicht unter Ubuntu. Wenn ich die vdiclient.py ausführe kommt folgender Fehler.
client@client:/usr/local/bin$ vdiclient.py
Traceback (most recent call last):
File “/usr/local/bin/vdiclient.py”, line 3, in
import PySimpleGUI as sg # pip install PySimpleGUI
File “/home/client/.local/lib/python3.10/site-packages/PySimpleGUI/__init__.py”, line 2, in
from .PySimpleGUI import *
File “/home/client/.local/lib/python3.10/site-packages/PySimpleGUI/PySimpleGUI.py”, line 136, in
import tkinter as tk
ModuleNotFoundError: No module named ‘tkinter’
Was kann das sein ?
mfg Manuel
apt install python3-tk
Die Frage ist noch, was passiert mit Spice Dual Screen. Wird das automatisch auf 2 Monitore am Thinclient verteilt…
Hallo, danke dir für deine großartige Anleitung. Ich habe noch das Problem, das ich weder zu einer Linux- noch zu einer Windows-VM eine Verbindung aufbauen kann. Ich kann mich normal im Windows Client anmelden, dann wird es weiß auf dem Bildschirm und nach 2 Sekunden kommt dann die Meldung: “Keine Verbindung zum Grafikserver möglich” Hast du da einen Tipp?
Eventuell Probleme mit der Namensauflösung? Probier mal in der ini diesen Eintrag:
[SpiceProxyRedirect]
pve.homelab.local:3128 = IP von pve.homelab.local:3128
Hmmmm… Also VirusTotal ist nicht begeistert von der vdiclient-2.0.2-64.msi und auch Chrome hat gewarnt…
https://www.virustotal.com/gui/file/de02694aa17f490ef5089f342de76123998a7b1cb93f6d825f788a75cd5ed2de
Dazu gibt es auch schon einen issue auf Github.
https://github.com/joshpatten/PVE-VDIClient/issues/98
Muss man jetzt selbst entscheiden wie man damit umgeht.