ProxmoxVirtual(PVE)搭建VDI桌面虚拟化
本人比较喜欢linux,一直想找个开源的VDI方案。最近刚好看到国外的大神做了一个开源的VDI客户端。就结合国外教程和自己的一些小经验在此做个笔记!
一)首先你的用PVE搭建好服务器,我这用的是PVE7.3,详细的搭建过程因为很简单我就这不描述了。
二)创建虚拟机
这里需要注意一些,显卡要选SPICE,机型要选Q35,Qemu勾选(方便在PVE后台看到IP地址),因为这里装的是WIN11,所以需要用UEFI的BIOS,需要添加TPM(不然无法安装启动)
总线要选SATA的
类别选用HOST(就是把真实的CPU传递给虚拟机,方便有更好的性能),当然你也可以选虚拟化的CPU
虚拟机创建好之后就可以启动安装windows了!这个要原版安装就行。就不截图了!
安装好虚拟机后需要打驱动!我这里使用的是最新的virtio-win-0.1.225
你可以点击上面的超链接进行下载。
下载完后通过PVE的后台上传上去
在虚拟机硬件这里修改ISO文件
找到这个文件然后安装。就能把所有的驱动安装上!
三)为VDI做准备
这里要把SPICE增强开启,不然与瘦客户机的带宽传输就会很大!CPU的负载也很大。选择瘦客户机的时候尽可能选择单核高频的瘦客户机,这玩意吃单核性能,多核用处不大!filter是最理想的选项,丢帧和画质相对来说可以接受,选ALL的话画面撕裂太严重!
然后添加音频重定向,这样才可以把虚拟机的音频传到瘦客户机上。
这里是添加USB重定向。到这里服务器的硬件设置就完成了!
下面是权限设置
是创建角色(你可以理解为windows的用户组),名称你可以自己填一个自己想要的,特权最少要添加图中这三个
按照图中指引添加用户(用户名你可以自己编一个,不一定要按照我的)
路径就是你要授权的虚拟机,用户就是刚新建的用户,角色就是刚新建的
到此服务器上的设置就完成了!
四)瘦客户机设置
这里瘦客户机使用 Raspberry Pi OS(32 位)Bullseye 版本 2022-01-28 和 Debian Bullseye 版本 11.2.0 做示例。
瘦客户机为树莓派的前置工作
首先更新一下系统 sudo apt update && sudo apt upgrade -y 安装必要的组件 sudo apt install python3-pip python3-tk python3-pyside2* virt-viewer git -y pip3 install proxmoxer PySimpleGUI PySimpleGUIQt pip3 install --upgrade PySimpleGuiQt==0.35.0 --no-deps 获取VDI的开源代码(这里自备代理) git clone https://github.com/joshpatten/PVE-VDIClient.git 如果你没办法直接克隆拉到上面的文件就用下面的代码吧(如果你的系统没有wget,用命令安装一下apt install wget -y) wget -c https://www.zajilu.com/share/PVE-VDIClient.tar.gz tar -zxvf PVE-VDIClient.tar.gz 然后切换到目录 cd ./PVE-VDIClient 授权 chmod +x vdiclient.py
瘦客户机为X86 Debian的前置工作
获取最新的系统 sudo apt update && sudo apt upgrade -y 安装必要的徐建 sudo apt install python3-pip python3-tk virt-viewer git -y pip3 install proxmoxer PySimpleGUI PySimpleGUIQt 获取开源代码(自备代理) git clone https://github.com/joshpatten/PVE-VDIClient.git 如果你没办法直接克隆拉到上面的文件就用下面的代码吧(如果你的系统没有wget,用命令安装一下apt install wget -y) wget -c https://www.zajilu.com/share/PVE-VDIClient.tar.gz tar -zxvf PVE-VDIClient.tar.gz 然后切换到目录 cd ./PVE-VDIClient 授权 chmod +x vdiclient.py
写一个配置文件放/etc/vdiclient方便以后操作
创建文件夹 sudo mkdir -p /etc/vdiclient 创建配置文件 sudo nano /etc/vdiclient/vdiclient.ini
填入以下内容
[General] title = apalrd VDI icon=vdiicon.ico logo=vdilogo.png kiosk=false [Authentication] auth_backend=pve auth_totp=false tls_verify=false [Hosts] <Proxmox IP or DNS name> =8006
这里需要注意:你要在etc/hosts文件里写入你PVE服务器的解析,不然后面的VDI客户端会提示找不到SPICE的代理服务器
如果你瘦客户机有多个用户就复制以下文件到指定文件夹。反正我都按照作者要求做了
#复制vdiclient.py 到本地的 bin文件夹 sudo cp vdiclient.py /usr/local/bin/vdiclient 复制图片文件 sudo cp vdiclient.png /etc/vdiclient/ sudo cp vdiicon.ico /etc/vdiclient/
如果你不想设置开机启动,就不用往下看了!你可以直接输入
/usr/bin/python3 ~/PVE-VDIClient/vdiclient.py
就能看到VDI程序了!
下面我们这设置开机自动启动VDI客户端程序
对于X86的Debian
切换目录 cd /etc/xdg/lxsession/LXDE 备份配置文件 sudo mv autostart autostart.bak 创建一个空白的配置文件 sudo touch autostart
确认有这个目录,没有的话就创建 mkdir -p ~/.config/lxsession/LXDE 切换到目录 cd ~/.config/lxsession/LXDE 备份配置文件 mv autostart autostart.bak 创建新的配置文件 nano autostart
对于 Pi 操作系统:
切换目录 cd /etc/xdg/lxsession/LXDE-pi 备份配置文件 sudo mv autostart autostart.bak 创建一个空白的启动文件 sudo touch autostart 创建文件夹 mkdir -p ~/.config/lxsession/LXDE-pi 切换目录 cd ~/.config/lxsession/LXDE-pi 备份配置文件 mv autostart autostart.bak 创建一个新的 nano autostart
创建一个新的文件,这个文件的路径如下。user这个目录根据你当前用户名不同而不同。
@/usr/bin/bash /home/<user>/thinclient
我们根据实际情况写入该文件 ( nano ~/thinclient
):
#cd into the PVE-VDIClient directory so local paths to images work cd ~/PVE-VDIClient #Run loop for thin client so user can't close it while true do /usr/bin/python3 ~/PVE-VDIClient/vdiclient.py done
注意:以上是作者的原代码,实际操作是有坑的,按照他这样写的话开机会提示找不到文件,无法进入图形界面,无法启动系统。只能从救援模式去修复!
cd ~/PVE-VDIClient
这一段你要填入的是PVE-VDIClient这个文件夹的绝对路径!你实在不知道就切换到该目录用PWD命令获取!
对于 Raspberry Pi OS,运行sudo raspi-config
并选择启动模式到 Desktop Autologin,就是这样。raspi-config
为您处理剩下的事情。
对于 Debian,我们需要进行编辑/etc/lightdm/lightdm.conf
以便为我们的用户启用自动登录。找到包含的行#autologin-user=
并取消注释,添加您自己的用户名(即autologin-user=你装Debian创建的用户名
)。
恢复桌面
如果您犯了一个严重的错误并希望您的桌面返回调试它,只需将自动启动文件移回并重新启动:
对于 Debian:
cd ~/.config/lxsession/LXDE mv autostart autostart.new mv autostart.bak autostart cd /etc/xdg/lxsession/LXDE mv autostart autostart.new mv autostart.bak autostart
对于 Pi 操作系统:
cd ~/.config/lxsession/LXDE-pi mv autostart autostart.new mv autostart.bak autostart cd /etc/xdg/lxsession/LXDE-pi mv autostart autostart.new mv autostart.bak autostart
当然,您可以在使用完桌面后执行相反的操作(autostart -> .bak 和 .new -> autostart)
引用文章地址:https://www.apalrd.net/posts/2022/raspi_spice_vdi/