笔者接触的第一个 Horizon 版本是 6.2 ,在当时看来功能已经足够丰富,经过几年的发展已经到了 8 版本,架构基本未变,组件有一些变动,功能更加丰富,最近刚好在 homelab 搭建了一套,简单讲讲环境的搭建过程。
关于 Horizon 连接服务器
在 Horizon 的架构下,连接服务器(Connection Server,以下简称 CS)是一切的核心,CS 主要负责以下工作:
- 与 Windows AD 对接,进行身份认证
- 管理桌面池、虚拟应用池
- 用户授权
- 与 vCenter 集成实现即时克隆等功能
- 在用户和虚拟桌面间建立安全隧道(可选功能)
Horizon 下支持部署多台 CS 以保证高可用性,环境中部署的第一台为主 CS 节点(Horizon 标准服务器),其他 CS 节点(Horizon 副本服务器)可以加入主 CS 节点以组成集群。多台 CS 节点可以同时工作,单台故障后通过其他节点也可以继续管理和使用桌面。
为了实现虚拟桌面的单一的访问入口,可以为 CS 配置负载均衡器,这块内容下下篇文章会介绍。
Horizon 连接服务器部署
介质下载
Horizon 的软件均可以在 my.vmware.com 中下载,为了方便我将文章需要的 2106 版本放在了度盘,关注公众号“NSX很可爱的”后台回复“Horizon”即可获取下载链接。
Horizon 8 的版本号不再像 7 一样是 Major.Minor,而是换为了类似某些 Linux 发行版的年份+月份组合,例如最新版本 2106 表示 2021 年 6 月份发布。(但是实际发布软件时可能 delay,导致发布日期和版本日期不匹配...)
环境需求
部署 CS 前,需要先准备好下列资源:
- Windows Server 虚拟机两台:用于安装 CS,支持 2012R2、2016、2019 三个版本,本测试环境使用 2C/4G/50G 的硬件配置
- Windows AD/DNS 至少 1 台:支持 2012R2、2016、2019三个版本
(兼容性详见:https://kb.vmware.com/s/article/78652)
Windows AD/DNS 部署
部署步骤略,网上有很多。
Windows Server 加域
依次将两台用于安装 CS 的 Windows 服务器加域,正确填写主机名和域名:
安装 CS 标准服务器
运行 Horizon-Connection-Server 安装程序,按照向导一步步进行设置:
第一台 CS 节点类型为“Horizon 标准服务器”:
其他配置保持默认即可。
为 CS 替换证书
CS 部署完成后默认使用自签名证书,一般建议部署 CA 签发一个证书,本文则使用一个简易的 App 来替代 CA 生成证书:
软件打开后界面如下,点击右上角的创建测试证书:
翻到最下面的“创建根证书”菜单:
创建一个根证书,名称可以随意定,有效期可以设置长一些:
接着再次创建测试证书,类型选择“服务器证书”,通用名称填写 *.域名(用通配符 * 是为了方便使用),有效期也设置长一些:
证书签发者选择之前创建的根证书,然后点击“创建证书”:
创建完成后会弹出证书详情,点击最下面的“导出证书”:
类型选择“IIS(pfx/pkcs12)”,设置密钥加密密码:
将导出后的 pfx 文件上传到 CS 服务器,运行 certlm.msc:
选择“个人>证书”,导入新证书:
导入完毕后,修改证书的属性,将其友好名称改为 vdm:
移除之前生成的默认证书,然后重启 Connection Server 服务:
访问 CS 管理页面
访问 https://cs1.halfcoffee.com/admin,可以看到 CS 已经使用了配置的证书:
部署副本 CS 节点
同标准 CS 服务器一样,直接运行安装程序,按照向导提示进行配置:
第二台 CS 节点类型为“Horizon 副本服务器”:
填写主 CS 节点的完整域名:
其他配置保持默认即可。副本服务器创建完后,也需要进行证书替换,方法与主 CS 一致。
为 CS 配置事件数据库
Horizon 8 支持使用 PostgreSQL 存放事件,刚好环境中有台 Docker 机器,于是 docker run 一个数据库来使用:
默认 PG 的用户名为 postgres,数据库名为 postgres。
返回 CS 管理页面,在设置>事件配置中配置 PostGRESQL:
点击确定即可。
本文完
关注微信公众号“NSX很可爱的”,后台回复“Horizon”即可获取本文以及相关介质的下载链接。