Unterstütze meinen Kanal auf Patreon: https://patreon.com/apfelcast In diesem Video zeige Ich euch, wie ihr einen Raspberry Pi als Thin Client nutzen könnt. Das bedeutet ihr könnt virtuelle Maschinen, die sich auf eurem Proxmox Server befinden über den Pi und daran angeschlossene Peripherie wie Maus, Tastatur und Monitor steuern. Auch USB-Geräte, die ihr an den Raspberry Pi anschließt werden automatisch an die VM weitergereicht.

» Windows VM konfigurieren:

» Benötigte Hardware:
Raspberry Pi 3 Set: https://amzn.to/359ELr8
Raspberry Pi 4 Set: https://amzn.to/36wABdv
Raspberry Pi 400: https://amzn.to/36IYZZd
Maus + Tastatur Set: https://amzn.to/36u4DyD
24 Zoll HDMI Monitor: https://amzn.to/3Nl2TZ9

 



Im Video verwendete Befehle:

 

1. Display-Mode bei gewünschter VM anpassen 
Modus SPICE wählen (qxl) (Überträgt Video Keyboard Muas + USB) (Bis zu 4 Displays möglich)
(QEMU Guest Agent muss installiert sein)

2. Neuen Nuter für Proxmomx Authentifizierung am Pi
Username: vdiuser
Mode Proxmox VE

Rolle erstellen:
VDI user
Privileges: VM.Console +(VM.PowerMgmt)

Permission ertsllen (je VM):
VMs wählen
User: vdiuser@pam
Role VDI.User


3. Raspberry Pi Setup
- Raspberry Pi OS Lite installieren (SSH aktiviren)

Raspberry Pi configurieren 

3.1 raspi-config

sudo raspi-config

System Options > Hostname vergeben
System Options > Passwort ändern
System Options > Boot / Auto Login > B2 Console Autologin (loggt sich automatisch als user pi auf Textkonsole ein)
Localication Options > Timzone

apt update && apt upgrade 

3.2 benötigte Pakete installieren

sudo apt install xserver-xorg x11-xserver-utils xinit openbox
sudo apt install virt-viewer

3.3 Proxmox SPICE Proxy konfigureieren

exit (zm Pi User wechseln)

nano thinclient.sh


##################################################################################

#!/bin/bash
set -e

# Set auth options
PASSWORD='vdiuser'
USERNAME='vdiuser@pve'

# Set VM ID
VMID="100"

# Set Node
# This must either be a DNS address or name of the node in the cluster
NODE="pvehost"

# Proxy equals node if node is a DNS address
# Otherwise, you need to set the IP address of the node here
PROXY="$NODE"

#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 -f spiceproxy


##################################################################################


## Skript ausführbar machen ##
chmod +x thinclient.sh


## Window Manager Openbox konfigureiren ##

sudo nano /etc/xdg/openbox/autostart

(folgendes hinzufügen)

##################################################################################

#Allow exit of X server with ctrl+alt+backspace
#If you don't want to let the user terminate/restart, leave this out
#You can always `killall xinit` via SSH to return to a terminal
setxkbmap -option terminate:ctrl_alt_bksp

#Start the shell script we already wrote in our home directory
#Runloop restarts the thin client (new access token, new config file)
#if the session is terminated (i.e the VM is inaccessible or restarts)
#User will see a black screen with a cursor during this process
while true
do
    ~/thinclient.sh
done

##################################################################################

3.3 Auto-Start konfigureiren

nano .bash_profile
[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && startx --





 

Quellen:
https://pve.proxmox.com/wiki/SPICE
https://www.apalrd.net/posts/2022/raspi_spice/

apfelcast Support

Du benötigst Unterstützung bei deinem Projekt oder hast Fragen zur Umsetzung?
Dann melde ich gern bei uns!

Kontaktieren