Thin Client to Proxmox
Einrichtung
Use eines Thin Clients für Proxmox VMs
Ziel
Diese Anleitung beschreibt, wie Sie einen Thin Client so konfigurieren, dass er beim Start automatisch eine Proxmox VM startet und eine Verbindung zu dieser herstellt. Bei Beendigung der VM wird der Thin Client heruntergefahren.
Voraussetzungen
Ein installiertes Debian 12-System mit GNOMEInstallierte Paketecurlundvirt-viewerAdministratorrechte auf dem Thin ClientAnmeldedaten für Proxmox (Benutzername & Passwort)
Schritte
SPICE-Client installieren:sudo apt-get install virt-viewerSkript zur VM-Steuerung erstellen:this:Erstellen Sie ein Skript namenscontrol_vm.sh:vim control_vm.shFügen Sie folgenden Inhalt hinzu (ersetzen Sie die Platzhalter durch Ihre tatsächlichen Daten):#!/bin/bash set -e # Set auth options PASSWORD='remote1234' USERNAME='remote@pve' # Set VM ID VMID="601" # Set Node # This must either be a DNS address or name of the node in the cluster NODE="liz" # Proxy equals node if node is a DNS address # Otherwise, you need to set the IP address of the node here PROXY="10.11.12.10" #The rest of the script from Proxmox NODE="${NODE%%\.*}" DATA="$(curl -f -s -S -k --data-urlencode "username=$USERNAME" --data-urlencode "password=$PASSWORD" "https://$PROXY:8006/api2/json/access/ticket")" echo "AUTH OK" TICKET="${DATA//\"/}" TICKET="${TICKET##*ticket:}" TICKET="${TICKET%%,*}" TICKET="${TICKET%%\}*}" CSRF="${DATA//\"/}" CSRF="${CSRF##*CSRFPreventionToken:}" CSRF="${CSRF%%,*}" CSRF="${CSRF%%\}*}" curl -f -s -S -k -b "PVEAuthCookie=$TICKET" -H "CSRFPreventionToken: $CSRF" "https://$PROXY:8006/api2/spiceconfig/nodes/$NODE/qemu/$VMID/spiceproxy" -d "proxy=$PROXY" > spiceproxy #Launch remote-viewer with spiceproxy file, in kiosk mode, quit on disconnect #The run loop will get a new ticket and launch us again if we disconnect exec remote-viewer -k --kiosk-quit on-disconnect spiceproxy if [ $? -eq 0 ]; then echo "Die VM wurde beendet. Fahre den Thin Client herunter..." sudo shutdown -h now else echo "Ein Fehler ist aufgetreten." fiSkript ausführbar machen:www.apalrd.net/posts/2022/raspi_spice/chmod +x control_vm.shSudo-Berechtigungen für das Herunterfahren setzen:sudo visudoFügen Sie am Ende dersudoers-Datei folgende Zeile hinzu (ersetzen SieIhr_Benutzernamedurch den entsprechenden Benutzernamen):Ihr_Benutzername ALL=NOPASSWD: /sbin/shutdownAutomatischer Start des Skripts beim Booten:a. add new xsession:
Abschluss
Nach einem Neustart des Thin Clients wird das control_vm.sh-Skript ausgeführt: Es startet die Proxmox VM, stellt eine Verbindung her und fährt den Thin Client herunter, sobald die VM beendet wird.
VM automatisch beim Systemstart des Thin Clients starten
Um sicherzustellen, dass Ihre VM automatisch gestartet wird, wenn der Thin Client hochfährt, integrieren Sie die folgenden Schritte in Ihr vorhandenes Skript und den Setup-Prozess:
Skript zum Starten der VM aktualisieren:In Ihrem bestehendencontrol_vm.sh-Skript haben Sie bereits einen Abschnitt, der die VM steuert. Diesen Abschnitt erweitern Sie wie folgt, um die VM beim Start zu starten:# VM starten DATA="$(curl -f -s -S -k --data-urlencode "username=$USERNAME" --data-urlencode "password=$PASSWORD" "https://$PROXY:8006/api2/json/access/ticket")" TICKET="${DATA//\"/}" TICKET="${TICKET##*ticket:}" TICKET="${TICKET%%,*}" TICKET="${TICKET%%\}*}" CSRF="${DATA//\"/}" CSRF="${CSRF##*CSRFPreventionToken:}" CSRF="${CSRF%%,*}" CSRF="${CSRF%%\}*}" curl -f -s -S -k -b "PVEAuthCookie=$TICKET" -H "CSRFPreventionToken: $CSRF" -X POST "https://$PROXY:8006/api2/json/nodes/$NODE/qemu/$VMID/status/start"Dieser Codeabschnitt authentifiziert sich bei der Proxmox-API, holt ein Ticket und ein CSRF-Token und sendet dann einen Befehl zum Starten der VM.Automatisches Starten des Skripts beim Booten sicherstellen:Falls noch nicht geschehen, stellen Sie sicher, dass Ihrcontrol_vm.sh-Skript beim Booten des Thin Clients automatisch gestartet wird. Dies können Sie mitsystemderreichen, wie bereits im vorherigen Abschnitt beschrieben.Testen:Starten Sie den Thin Client neu, um sicherzustellen, dass alles wie erwartet funktioniert. Die VM sollte automatisch starten, sobald der Thin Client hochfährt.