从零开始部署一套生产环境可用的XenDesktop云桌面基础架构
环境介绍
服务器:Dell PowerEdge R410
CPU:2×Intel Xeon E5504(4 Cores 4 Threads Per CPU)
内存:4×8G non-ECC DDR3
存储:1×1TB Seagate HDD
网卡:板载BCM5716双口千兆电口网卡
Tips:真不是故意用这种电子垃圾,是手头真没有闲着的机器了。这里面唯一的一块硬盘甚至还重摔过…本次部署过程中也是难受的很,随机读写性能基本等同于没有,IO Wait最高的时候高达8772%…唉
XenServer版本:7.5(buildDate: 2018-05-21)
XenDesktop版本:3.15
域控服务器操作系统:Windows Server 2012 R2
SQL Server版本:2014.120.5000.0
需要注意的是本文所部署的方法在安全方面并非最佳实践,如需强安全性还需做各种用户权限和网络的隔离等,以及最新版本的软件更新。
主机分配
序号 | 用途 | IP地址 | 操作系统 | 配置 |
---|---|---|---|---|
1 | 虚拟化 | 192.168.50.101 | XenServer 7.5 | 2c4g |
2 | 授权服务器 (本文不涉及) | — | — | — |
3 | 域控服务器 | 192.168.50.161 | Windows Server 2012 R2 | 2c4g |
4 | DDC与数据库 | 192.168.50.162 | Windows Server 2012 R2 | 2c4g |
5 | 客户机 | 192.168.50.171-180 | Windows 10 LTSC | 2c4g |
上述分配均为本次实验环境的分配,如果并发数量比较大环境比较多,建议将域控、SQL、DDC、授权服务、StoreFront等均分开部署。
本次部署中我对所有主机的IPv6功能均进行了关闭。
部署XenServer
其中激活服务器可以先不弄,XenServer默认拥有30天的试用期,激活服务器可以稍后和DDC做在一起(最佳实践也是如此),最后再激活即可。
部署Active Directory(域控)服务器
如果生产环境已经有了域控服务器则可以使用现成的域控制器。
- 新建Windows Server 2012 R2的虚拟机,命名为“AD Server”
接下来就是正常安装Windows Server 2012,安装带GUI的Standard版本即可。
正常进系统之后安装Guest-Tools,如果是Windows Server 2016及以上版本可能会要求重启1-2次。
随后固定IP地址,禁用防火墙,随后重启。
此时虚拟机应该已经可以切换到RDP模式了。 - 启用AD域控服务
打开服务器管理器,选择右上角“管理”,选择“添加角色和功能”。
勾选安装“Active Directory 域服务”,然后下一步。
随后一直下一步等待直至安装完成。 - 配置域控
点击服务器管理器右上角带叹号的小旗子,选择配置域控制器,然后在第一步选择“添加新林”。
根域名随便输入,规则是尽量不要与实际存在的域名重合,但也不要太古怪。
域控制器选项中设置还原模式的密码,其余选项保持默认。
其余选项均保持默认,进入先决条件检查,通过后直接安装即可。
直接点击安装,安装后会自动重启。
重启后登录方式自动变为域登录,密码仍是一开始设置的Administrator账户的密码。 - 新建DDC服务器的用户
打开Active Directory用户和计算机,展开自己的域,在Users下面创建一个新用户,该用户之后将用于DDC服务器和SQL服务器。
在下一个设置密码的页面中勾选“用户不能更改密码”和“密码永不过期”
下一步等待该用户创建好即可。 - 打开控制面板-Windows 防火墙,将“域网络”的防火墙也关闭。
域控服务器的部署到这里先告一段落。
部署DDC服务器基础环境
另起一台Windows Server服务器,我这里仍然使用虚拟机和Windows Server 2012 R2,Windows安装过程不再赘述,详见上一节第一步。
- 修改网络配置,固定IP,将域控服务器的IP作为DNS。
- 加入域
出现“欢迎加入xxxx域。”的提示即成功,然后重启。 - 禁用原账户并将域账户加入管理员
在重启后,登录时会让你登录到域账户,此时不要登录,选择返回箭头(Windows Server 2016及以上版本是左下角登录到其他账户),然后选择其他用户,在用户名处输入“计算机名\Administrator”,密码输入一开始设置的密码,随后点击登录。
登录进桌面之后右键开始按钮,选择“计算机管理”,找到“本地用户和组”,“组”,然后双击右侧“Administrator”组,下方添加,输入对象名称处输入刚才在域控服务器上创建的用户名,然后点击“检查”补全。中间可能会要求输入域账户的密码,输入刚才在域控服务器上创建的用户名密码即可。
随后注销Administrator账户,使用域账户登录:
重复上述登录后操作,禁用Administrator账户 - 禁用防火墙
- 禁用UAC
启用UAC的状态下在安装DDC时有概率失败,这里提前禁用掉。 - 启用.NET 3.5功能
这一步是SQL Server Studio需要的,如果不安装Studio此步可以跳过。
打开服务器管理器,右上角管理,添加角色和功能,勾选“.NET Framework 3.5”
此时在确认页面先停留,在XenCenter中挂载Windows Server的ISO镜像文件,然后添加备用源
添加好后等待安装完成即可,这一步无需重启。
部署SQL Server
SQL服务器我们这一步安装在DDC服务器上,如果环境比较庞大建议单独部署。
- 首先在虚拟机上挂载XA和XD的iso镜像,我们使用镜像中的SQL Server版本。
如果需要自行下载或需要额外下载SQL Server 2014 Management Studio可以到Download Microsoft® SQL Server® 2014 Express from Official Microsoft Download Center下载。 - 选择全新安装
- 前面步骤都保持默认选项即可,在Feature Selection部分把右侧所有组件都勾选,其余保持不变,下一步即可
- 选择实例名称的时候选择默认实例
- 更改服务账户
- 修改验证模式为混合模式,然后输入默认的sa账户的密码。如果下面SQL Server Administrator里面是空的的话再点一下Add Current User。
- 下一步等待安装完成
- 在开始菜单中找到SQL Server 2014 Configuration Manager
找到Network Configuration,将TCP/IP启用
以下部分为安装SQL Server 2014 Management Studio,不需要可以跳过。
- 将安装文件复制到虚拟机中,双击打开,默认是个自解压文件,点击确定提取,然后会自动启动SQL Server的安装向导
- 选择向已有实例中添加功能
- 勾选Management Tools,然后下一步
- 等待安装完成即可
安装好后重启虚拟机。
部署DDC
这一步部署Critix XenDesktop的Desktop Delivery Controller(DDC)。
安装DDC
- 首先在虚拟机挂载XenDesktop的ISO镜像,然后启动安装。
- 选择安装Delivery Controller
- 全选核心组件,我这里提前额外单独起了License Manager所以这里就不安装了
- 功能保持默认安装Windows远程协助
- 因为我这里已经提前禁用了防火墙所以这里选择哪个都不重要,建议选择自动将规则添加到防火墙,以便后续再开启防火墙时保持端口是放通的
- 检查安装配置,没有问题就直接安装即可
中间可能会要求重启1-2次,重启后安装会自动继续,中间不要卸载ISO镜像。 - 安装成功后选择不连接到Citrix
- 最后安装成功,勾选启动Studio进入初始化设置
初步配置DDC
- 在Citrix Studio中,选择“向用户交付应用程序和桌面”
- 选择“完整配置”并填入站点名称,站点名称可以随意填写
- 数据库配置中选择在Studio中创建和设置数据库,然后将本机IP加一个反斜杠填入“位置”处。由于我们安装SQL数据库时使用了默认实例,因此斜杠后留空。然后点击下一步,然后稍等片刻。
- 连接到许可服务器,因为我这里许可服务器单独部署了,所以会额外询问;不清楚跟随DDC一起安装的话会不会询问。
- 连接服务器位置选择服务器类型,我这里是XenServer;连接地址输入XenServer管理IP;用户名和密码填入XenServer的用户名和密码;连接名称随便写;其余保持默认。
- 存储部分我们选择本地存储,如果有共享存储则选择共享存储。
- 选择数据存储位置的部分按照自己实际情况选择,一般来说是系统放在固态硬盘,个人数据放在机械硬盘。我这里就一块盘所以保持默认了。
- 选择出口网卡,我这里选择了eth1作为出口网卡,也是按照实际情况选择即可。
- 附加功能是否启用对实际使用关系不大,如果需要用就启用,我这里就跳过了。
- 最后检查摘要,没问题确认安装等待安装完成即可,安装过程相对漫长,可以稍等片刻。
部署客户虚拟机模板
按正常流程新建虚拟机然后安装操作系统,此处略过。
- 安装好操作系统后先安装Guest Tools
中间可能会有1-2次重启。 - 修改网卡IP,DNS修改为域控制器的IP
- 回到AD域控制器,新建一个用户,该用户仅用于模板机
- 将模板机加域,使用刚才创建的账户登录,然后重启
- 重启后仍使用原账户登录,打开计算机管理-本地用户和组-组,将刚才在域控上新建用于模板机的账户加入Administrators组
- 注销原账户,使用刚才在域控上新建用于模板机的账户登录
- 使用域账户登录后禁用原机账户防止误登录到原账户
- 禁用防火墙
- 挂载XenDesktop的ISO镜像,选择XenDesktop启动,安装代理(VDA)
- 选择创建主映像
- 核心组件保持默认
- 附加组件全选就行
- 输入DDC的地址,仅接受域名,不支持IP地址
- 客户端功能根据实际情况选择
- 防火墙规则自动添加或者手动添加无所谓,因为我们前面已经禁用防火墙了
- 检查摘要没问题直接下一步安装即可,最后Smart Tools不连接到Citrix,安装完成后重启即可。
- 重启完成后进入模板机,正常安装软件和个性化配置,完成后关闭虚拟机。
虚拟云桌面交付
创建DHCP服务
该步骤仅用于没有DHCP的网络环境,如果你的网络环境中已经有了能够自动下发DHCP地址的DHCP服务器,请跳过此步。
本节将在当前网络环境中创建一个基于Windows Server的DHCP服务器。Citrix虚拟机云桌面下发时依靠DHCP分配地址,连接时依靠网络进行连接。
- 在任意具备与客户虚拟机在同一网络平面的网卡的服务器(我这里使用域控服务器)上打开“服务器管理器”,右上角管理-添加角色和功能,在“服务器角色”页面找到“DHCP服务器”,勾选并完成安装。
- 随后在服务器管理器-左侧栏找到DHCP,默认状态下要求配置安全组
默认情况下使用默认配置即可 - 打开服务器管理器-右上角工具-DHCP,可见如下界面
右键IPv4,新建作用域,下一步之后输入作用域名称和说明,随便写就可以
随后配置IP分配范围和子网掩码
配置排除范围,一般不需要配置
设置租期,一般按照云桌面的使用频次和轮换次数确定
现在配置网关和DNS,这个建议选择现在配置以便将网关和DNS都分发下去,一个是方便加域,一个是方便上网
配置网关,就一个网关的话就写一个就行
域名和DNS会继承本机网卡的值,一般没有问题的话用默认获取的就行,直接下一步
WINS服务器一般用不到也没有,直接全留空下一步
配置好后激活作用域就开始分发地址了 - 开始分发后即可在对应作用域下面的“地址租用”部分查看已经分配的IP地址和计算机信息
调整权限
这一步主要是解决后面可能无法创建虚拟机,提示“没有权限在默认OU或者指定OU创建计算机”的问题。
在域控服务器上打开“Active Directory用户和计算机”,将刚才创建的ddc用户加入Domain Admins组,然后确定保存,最后重启DDC服务器。
创建计算机目录
- 在DDC服务器上打开Citrix Studio,创建计算机目录,操作系统选择桌面操作系统
- 选择“进行电源管理的计算机”和Citrix MCS
- 桌面体验按照实际需求选择
- 主映像选择刚才创建的模板机
- 创建多少台虚拟机按照自己的需求填写,我这里物理机性能不太行,就先创建两台测试了
- 计算机账户位置保持默认即可,账户命名方案按提示输入
- 最后检查摘要,填写计算机目录名称
然后等待虚拟机创建完成
创建交付组
- 在Citrix Studio中右键点击左侧“交付组”,“创建交付组”,选择刚才创建好的计算机目录
- 选择“交付桌面”
- 用户部分根据实际情况选择OU,因为我这里的AD域专用于云桌面所以选择了允许全部用户
- 分配规则按照实际情况选择分配给哪个用户或者所有可登录的用户都能得到分配
- 检查摘要,没问题直接点击完成
检查StoreFront设置
在DDC服务器上,打开Citrix Studio,左侧栏选择“Citrix StoreFront”,右侧应该默认已经配置好了一个Store Service,然后在下面详细信息中可以查看Receiver for Web站点,下面的http://xxxxx/Citrix/StoreWeb
就是云桌面的入口。
在浏览器打开它就可以看到Receiver for Web的页面。
创建用户
云桌面交付的最后一步是创建最终用户的账户,在AD域控服务器上新建账号,用于登录云桌面。
至此,部署完成。
其他问题
客户机上无管理员权限
确实是没有,我的解决办法是在制作模板机的时候把Domain Users
组加入模板机的Administrators
组,这样客户机自己也有管理员权限了。不过如此操作是否有安全风险还有待考虑。
USB重定向
打开DDC服务器上的Citrix Studio,转到策略,编辑右侧默认策略(Unfiltered),找到“客户端USB设备重定向”,编辑为“启用”。
随后重新连接云桌面,此时在Desktop Viewer上即可看到设备重定向及设备管理选项。
Citrix Receiver 无法添加 HTTP 商店
打开Citrix Receiver后添加http连接的StoreFront提示无法添加,需要额外操作。
那么额外操作是什么呢?
这里分两种情况,客户机是32位还是64位。
- 打开注册表编辑器,定位到如下路径:
x86x641
HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\Dazzle
其中1
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\Dazzle
AllowAddStore
值更改为A
;AllowSavePwd
值更改为A
。 - 再定位到如下路径:
x86x641
HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\AuthManager
然后新建字符串1
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\AuthManager
ConnectionSecurityMode
,值设定为Any
。
最后重启Citrix Receiver即可。