笔者接触的第一个 Horizon 版本是 6.2 ,在当时看来功能已经足够丰富,经过几年的发展已经到了 8 版本,架构基本未变,组件有一些变动,功能更加丰富,最近刚好在 homelab 搭建了一套,简单讲讲环境的搭建过程。


关于 Horizon 连接服务器

在 Horizon 的架构下,连接服务器(Connection Server,以下简称 CS)是一切的核心,CS 主要负责以下工作:

  • 与 Windows AD 对接,进行身份认证
  • 管理桌面池、虚拟应用池
  • 用户授权
  • 与 vCenter 集成实现即时克隆等功能
  • 在用户和虚拟桌面间建立安全隧道(可选功能)

Horizon 8 测试环境部署(1):连接服务器安装_虚拟化


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,导致发布日期和版本日期不匹配...)

Horizon 8 测试环境部署(1):连接服务器安装_虚拟化_02

环境需求

部署 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 服务器加域,正确填写主机名和域名:

Horizon 8 测试环境部署(1):连接服务器安装_虚拟桌面_03

Horizon 8 测试环境部署(1):连接服务器安装_Horizon_04


安装 CS 标准服务器

运行 Horizon-Connection-Server 安装程序,按照向导一步步进行设置:

Horizon 8 测试环境部署(1):连接服务器安装_虚拟化_05

第一台 CS 节点类型为“Horizon 标准服务器”:

Horizon 8 测试环境部署(1):连接服务器安装_VDI_06

其他配置保持默认即可

为 CS 替换证书

CS 部署完成后默认使用自签名证书,一般建议部署 CA 签发一个证书,本文则使用一个简易的 App 来替代 CA 生成证书:

Horizon 8 测试环境部署(1):连接服务器安装_虚拟桌面_07

软件打开后界面如下,点击右上角的创建测试证书:

Horizon 8 测试环境部署(1):连接服务器安装_Horizon_08

翻到最下面的“创建根证书”菜单:

Horizon 8 测试环境部署(1):连接服务器安装_虚拟化_09

创建一个根证书,名称可以随意定,有效期可以设置长一些:

Horizon 8 测试环境部署(1):连接服务器安装_VDI_10

接着再次创建测试证书,类型选择“服务器证书”,通用名称填写 *.域名(用通配符 * 是为了方便使用),有效期也设置长一些:

Horizon 8 测试环境部署(1):连接服务器安装_虚拟化_11

证书签发者选择之前创建的根证书,然后点击“创建证书”:

Horizon 8 测试环境部署(1):连接服务器安装_虚拟化_12

创建完成后会弹出证书详情,点击最下面的“导出证书”:

Horizon 8 测试环境部署(1):连接服务器安装_VDI_13

类型选择“IIS(pfx/pkcs12)”,设置密钥加密密码:

Horizon 8 测试环境部署(1):连接服务器安装_vmware_14

将导出后的 pfx 文件上传到 CS 服务器,运行 certlm.msc:

Horizon 8 测试环境部署(1):连接服务器安装_虚拟桌面_15

选择“个人>证书”,导入新证书:

Horizon 8 测试环境部署(1):连接服务器安装_虚拟化_16

Horizon 8 测试环境部署(1):连接服务器安装_Horizon_17

Horizon 8 测试环境部署(1):连接服务器安装_vmware_18

Horizon 8 测试环境部署(1):连接服务器安装_虚拟桌面_19

导入完毕后,修改证书的属性,将其友好名称改为 vdm:

Horizon 8 测试环境部署(1):连接服务器安装_虚拟桌面_20

Horizon 8 测试环境部署(1):连接服务器安装_虚拟桌面_21

移除之前生成的默认证书,然后重启 Connection Server 服务:

Horizon 8 测试环境部署(1):连接服务器安装_vmware_22


访问 CS 管理页面

访问 https://cs1.halfcoffee.com/admin,可以看到 CS 已经使用了配置的证书:

Horizon 8 测试环境部署(1):连接服务器安装_虚拟桌面_23

部署副本 CS 节点

同标准 CS 服务器一样,直接运行安装程序,按照向导提示进行配置:

Horizon 8 测试环境部署(1):连接服务器安装_VDI_24

第二台 CS 节点类型为“Horizon 副本服务器”:

Horizon 8 测试环境部署(1):连接服务器安装_虚拟桌面_25

填写主 CS 节点的完整域名:

Horizon 8 测试环境部署(1):连接服务器安装_Horizon_26

其他配置保持默认即可。副本服务器创建完后,也需要进行证书替换,方法与主 CS 一致。

为 CS 配置事件数据库

Horizon 8 支持使用 PostgreSQL 存放事件,刚好环境中有台 Docker 机器,于是 docker run 一个数据库来使用:

docker run -d --name my-pg --restart=unless-stopped -p:5432:5432 \
-e PGDATA=/var/lib/postgresql/data/pgdata \
-v /postgres:/var/lib/postgresql/data \
-e POSTGRES_PASSWORD=VMware1! postgres

默认 PG 的用户名为 postgres,数据库名为 postgres。

返回 CS 管理页面,在设置>事件配置中配置 PostGRESQL:

Horizon 8 测试环境部署(1):连接服务器安装_vmware_27

Horizon 8 测试环境部署(1):连接服务器安装_VDI_28

点击确定即可。


本文完

关注微信公众号“NSX很可爱的”,后台回复“Horizon即可获取本文以及相关介质的下载链接。