本文主要是“vmware Horizon 云桌面部署”的扩展,详细讲解了不同操作系统Horizon模板机的创建与部署。
Windows
Windows 模板机的部署应该基本是大同小异的,这里暂时我只测试了Windows 10。
Windows 10 LTSC
- 在vCenter中新建一个虚拟机,该虚拟机用作云桌面的模板,按照正常虚拟机部署流程安装Windows操作系统和应用软件即可。
- 随后是安装VMTools、禁用防火墙、禁用更新、禁用Defender、安装常用软件。
- 安装Agent,将如下软件包传入虚拟机Direct Connection那个不知道有什么用,总之装就对了。
1
2VMware-Horizon-Agent-x86_64-2312-8.12.0-23142606.exe
VMware-Horizon-Agent-Direct-Connection-x86_64-8.12.0-23142606.exe - Agent安装过程基本就是一直下一步,自定义安装环节根据自己实际需要选择即可
注意,某些重定向功能启用后可能会造成未预期的安全问题。 - 远程桌面部分建议开启
- 开始安装Agent,安装好后自动重启
- 重启后安装Direct Connection,安装好后关闭虚拟机,创建快照。
(Linux) Debian Distro
ubuntu 20.04
- 在vCenter中新建一个虚拟机,按正常流程安装ubuntu,我这里使用的是ubuntu Desktop 20.04版本。
安装过程中对计算机名、用户名密码等均没有特殊要求,正常安装即可。 - 首先安装vmtools,推荐使用Open-vm-tools安装好后重启。
1
sudo apt install -y open-vm-tools
- 检查当前虚拟机IP地址是否能自动获取,DNS是否能够解析到域控服务器。
我这里ubuntu默认就是没开ufw防火墙且未开启selinux的,如果这两项开启还要先关闭或作放行处理。 - 安装域控客户端
1
sudo apt install -y realmd libnss-sss libpam-sss sssd sssd-tools adcli samba-common-bin oddjob oddjob-mkhomedir packagekit
- 修改计算机名,格式是前缀+
域名
,例如ubuntutemplate.vh3.lxn
。执行如下命令更改:1
sudo hostnamectl set-hostname ubuntutemplate.vh3.lxn
- 测试一下能否正常发现域控服务器如果返回如下信息则以上步骤均成功
1
realm discover adc.vh3.lxn
1
2
3
4
5
6
7
8
9
10
11
12
13vh3.lxn
type: kerberos
realm-name: VH3.LXN
domain-name: vh3.lxn
configured: no
server-software: active-directory
client-software: sssd
required-package: sssd-tools
required-package: sssd
required-package: libnss-sss
required-package: libpam-sss
required-package: adcli
required-package: samba-common-bin - 使用管理员账户加域:随后输入密码
1
sudo realm join --user=administrator adc.vh3.lxn
这一部分设置好后可以用id
命令查询其他用户的信息,用于测试是否加域成功,能够正常返回UID等信息即可。 - 编辑sssd的配置文件
/etc/sssd/sssd.conf
,找到如下两行,将值修改为如下内容:1
2use_fully_qualified_names = False
fallback_homedir = /home/%u - 将用户组加入sudoer中以便用户能够执行sudo命令:
使用root账户执行visudo
,在打开的文件末尾添加如下行:保存退出后重启。如果你的模板目标用户在域中不是1
2# Allow Domain User to execute sudo.
%\domain\ users ALL=(ALL) NOPASSWD:ALLDomain Users
,则需要替换%
后面的内容。 - 启用Linux桌面下的USB重定向支持,该功能默认是不启用的。
此步如果需要在Linux云桌面下进行USB设备重定向,安装到这一步则可以先暂停安装,待安装好VHCI驱动后再继续安装。
如果不需要该功能直接跳过即可。 - 安装Agent
将VMware-horizonagent-linux-x86_64-2312-8.12.0-23145208.tar.gz
传入虚拟机并解压,然后cd进去执行安装命令:如果在上一步安装了VHCI驱动,则添加1
./install_viewagent.sh -A yes
-U yes
以启用USB重定向功能,若未安装或安装失败以及安装过程中有报错等请勿添加该参数。
最后等待出现Installation done
安装完成即可。 - 将虚拟机关机,回到vCenter,待虚拟机彻底关闭后创建快照即可。
麒麟桌面操作系统V10
暂时不支持,遇到了登录失败以及Agent安装时报错的问题。
并且Horizon内拿不到客户机的IP地址。
ubuntu下VHCI驱动安装
测试环境ubuntu版本为20.04.1,内核版本为
5.15.0-131-generic
。
下述内容步骤完成于2025年02月14日。
- 下载VHCI驱动源码:
1
wget https://sourceforge.net/projects/usb-vhci/files/linux%20kernel%20module/vhci-hcd-1.15.tar.gz/download -O vhci-hcd-1.15.tar.gz
- 解压到指定目录:修改一下目录名:
1
tar -zxvf vhci-hcd-1.15.tar.gz -C /usr/src/
1
mv /usr/src/vhci-hcd-1.15 /usr/src/usb-vhci-hcd-1.15
- 安装基础工具
1
sudo apt install -y make gcc libelf-dev flex bison
- 安装内核头文件
1
sudo apt install -y linux-headers-`uname -r`
- 安装DKMS(Dynamic Kernel Module Support,动态内核模块支持)
1
sudo apt install -y dkms
- 上传VMware Horizon Agent到虚拟机,解压找到如下文件:
1
tar -zxvf VMware-horizonagent-linux-x86_64-2312-8.12.0-23145208.tar.gz
请务必按照实际情况找到该文件!1
~/VMware-horizonagent-linux-x86_64-2312-8.12.0-23145208/resources/vhci/patch/vhci.patch
- 应用补丁
进入VHCI源码目录:修补源码:1
cd /usr/src/usb-vhci-hcd-1.15
1
patch -p1 < /home/udt/VMware-horizonagent-linux-x86_64-2312-8.12.0-23145208/resources/vhci/patch/vhci.patch
- 在
/usr/src/usb-vhci-hcd-1.15
目录下新建dkms.conf
,内容如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15PACKAGE_NAME="usb-vhci-hcd"
PACKAGE_VERSION=1.15
MAKE_CMD_TMPL="make KVERSION=$kernelver"
CLEAN="$MAKE_CMD_TMPL clean"
BUILT_MODULE_NAME[0]="usb-vhci-iocifc"
DEST_MODULE_LOCATION[0]="/kernel/drivers/usb/host"
MAKE[0]="$MAKE_CMD_TMPL"
BUILT_MODULE_NAME[1]="usb-vhci-hcd"
DEST_MODULE_LOCATION[1]="/kernel/drivers/usb/host"
MAKE[1]="$MAKE_CMD_TMPL"
AUTOINSTALL="YES" - 向dkms添加VHCI驱动程序
1
dkms add usb-vhci-hcd/1.15
- 编译VHCI驱动程序
1
dkms build usb-vhci-hcd/1.15
- 安装VHCI驱动程序
1
dkms install usb-vhci-hcd/1.15
- 继续安装Agent并启用
-U yes
参数即可。
(Linux) RHEL Distro
CentOS 7.9.2009
- 在vCenter中新建一个虚拟机,按正常流程安装CentOS,我这里使用的是CentOS 7.9.2009最后一个版本。
安装过程中对计算机名、用户名密码等均没有特殊要求,正常安装即可。 - 禁用SELinux、禁用防火墙,更换软件源,然后重启。
我这里使用了华为的源:1
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/artifactory/os-conf/centos/centos-7.repo
- 安装VMtools
1
sudo yum install -y open-vm-tools
- 安装域控软件包
1
sudo yum install -y sssd realmd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation openldap-clients policycoreutils-python
- 修改计算机名,格式是前缀+
域名
,例如costmplate.vh3.lxn
。执行如下命令更改:1
sudo hostnamectl set-hostname costemplate.vh3.lxn
- 加域
1
realm join --user=administrator adc.vh3.lxn
- 编辑sssd的配置文件
/etc/sssd/sssd.conf
,找到如下两行,将值修改为如下内容:1
2use_fully_qualified_names = False
fallback_homedir = /home/%u - 将用户组加入sudoer中以便用户能够执行sudo命令
打开/etc/sudoers
,在文件末尾添加如下行:然后重启。1
2# Allow Domain User to execute sudo.
%\domain\ users ALL=(ALL) NOPASSWD:ALL - 安装VHCI驱动:
启用Linux桌面下的USB重定向支持,该功能默认是不启用的。
此步如果需要在Linux云桌面下进行USB设备重定向,安装到这一步则可以先暂停安装,待安装好VHCI驱动后再继续安装。
如果不需要该功能直接跳过即可。 - 将Agent传入虚拟机内,解压
1
tar -zxvf VMware-horizonagent-linux-x86_64-2312-8.12.0-23145208.tar.gz
- 安装Agent出现
1
[root@localhost VMware-horizonagent-linux-x86_64-2312-8.12.0-23145208]# ./install_viewagent.sh
Installation done
字样即为安装完成,关机后创建快照。
CentOS 9 Stream
安装方法与上述CentOS 7的安装方法基本一样,这里不再赘述,仅仅讲一下哪里有区别。
- 域控软件包安装:
1
sudo dnf install -y sssd realmd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation openldap-clients
- 安装Agent前额外安装一下PulseAudio的控制台工具:
1
sudo dnf install -y pulseaudio-utils
其余步骤均相同。
CentOS安装VHCI驱动
测试环境CentOS版本为7.9.2009,内核版本为
3.10.0-1160.119.1.el7.x86_64
。
下述内容步骤完成于2025年02月19日。
- 下载VHCI驱动源码:
1
wget https://sourceforge.net/projects/usb-vhci/files/linux%20kernel%20module/vhci-hcd-1.15.tar.gz/download -O vhci-hcd-1.15.tar.gz
- 解压到指定目录:修改一下目录名:
1
tar -zxvf vhci-hcd-1.15.tar.gz -C /usr/src/
1
mv /usr/src/vhci-hcd-1.15 /usr/src/usb-vhci-hcd-1.15
- 安装EPEL:换源:
1
yum install -y epel-release
1
2
3
4
5
6
7
8[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=http://mirrors.ustc.edu.cn/epel-archive/7/$basearch
#metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 - 安装基础工具:
1
yum install -y kernel-headers kernel-devel dkms
- 上传VMware Horizon Agent到虚拟机,解压找到如下文件:
1
tar -zxvf VMware-horizonagent-linux-x86_64-2312-8.12.0-23145208.tar.gz
请务必按照实际情况找到该文件!1
~/VMware-horizonagent-linux-x86_64-2312-8.12.0-23145208/resources/vhci/patch/vhci.patch
- 应用补丁
进入VHCI源码目录:修补源码:1
cd /usr/src/usb-vhci-hcd-1.15
1
patch -p1 < /root/VMware-horizonagent-linux-x86_64-2312-8.12.0-23145208/resources/vhci/patch/vhci.patch
- 在
/usr/src/usb-vhci-hcd-1.15
目录下新建dkms.conf
,内容如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15PACKAGE_NAME="usb-vhci-hcd"
PACKAGE_VERSION=1.15
MAKE_CMD_TMPL="make KVERSION=$kernelver"
CLEAN="$MAKE_CMD_TMPL clean"
BUILT_MODULE_NAME[0]="usb-vhci-iocifc"
DEST_MODULE_LOCATION[0]="/kernel/drivers/usb/host"
MAKE[0]="$MAKE_CMD_TMPL"
BUILT_MODULE_NAME[1]="usb-vhci-hcd"
DEST_MODULE_LOCATION[1]="/kernel/drivers/usb/host"
MAKE[1]="$MAKE_CMD_TMPL"
AUTOINSTALL="YES" - 向dkms添加VHCI驱动程序
1
dkms add usb-vhci-hcd/1.15
- 编译VHCI驱动程序
1
dkms build usb-vhci-hcd/1.15
- 安装VHCI驱动程序
1
dkms install usb-vhci-hcd/1.15
- 继续安装Agent并启用
-U yes
参数即可。