从 Horizon 8 版本 2406 开始,您可以使用 Horizon 生命周期管理 (LCM) API 自动化和简化安装 Omnissa Horizon Connection Server 和注册服务器实例的过程。本页面提供了一些简要的 LCM API 请求的简要示例,可用于实施自动安装或升级工作流。
关于 LCM API
LCM API 是 Horizon Server API 的一部分。有关更多详细信息,请参阅 https://developer.omnissa.com 上的文档:
-
《Horizon Server API 入门指南》介绍了如何使用 Horizon Connection Server 的基本 URL 路径调用 API。
-
《LCM REST API》 文档提供了使用 LCM API 的准则。
-
《Horizon Server API 参考》提供了每个 API 的完整参考信息。
在 Terraform 框架中使用 LCM API
Omnissa 还开发了一个适用于 Horizon 8 的 Terraform 提供程序。您可以将 LCM API 与此 Terraform 提供程序结合使用,以自动执行 Horizon 8 部署的生命周期管理。
将 LCM API 与 Terraform 提供程序结合使用时,标准必备条件适用。
可以在 https://github.com/euc-dev/horizon-terraform 中找到适用于 Horizon 8 的 Terraform 提供程序。
必备条件
使用 LCM API 之前,必须完成下列必备条件。本页面中的各节提供了每个必备条件的详细信息。
- Horizon Connection Server 版本 2406 或更高版本
- 配置 WinRM
- 准备托管方法
- 指定用于调用 LCM API 的管理员帐户
- 如果需要,可将连接服务器主机配置为信任第三方 CA
版本 2406 或更高版本
安装或升级到至少一个 Horizon Connection Server 2406 或更高版本实例。LCM API 只能在版本 2406 或更高版本的 Horizon Connection Server 中使用。
**注意:**对于新的 Horizon 8 部署,您可以使用命令行脚本自动完成初始 Horizon Connection Server 安装,然后使用 LCM API 进行后续安装。
配置 WinRM
在以下组件上配置 WinRM:
- 要从中调用 LCM API 的 Horizon Connection Server 主机
- 将在其上执行自动安装或升级的每个目标计算机
准备托管方法
准备以下托管方法之一:
SMB 文件共享
从 2503 版本开始,LCM REST API 支持使用 SMB 文件 URL 注册连接服务器内部版本软件包。这样,管理员可以在 SMB 共享上托管内部版本文件,并使用 fileUrl 参数进行注册。
使用 SMB 文件 URL 的必备条件:
- **文件 URL 格式:**在
fileUrl参数中使用smb://前缀。例如,对于名为Omnissa-Horizon-Connection-Server-x86_64-2503-8.15.0-13513405225的 EXE 文件,fileUrl参数格式为smb://smb-share/share-name/Omnissa-Horizon-Connection-Server-x86_64-2503-8.15.0-13513405225.exe(其中smb-share/share-name是 SMB 共享的唯一信息)。 - 访问权限:连接服务器计算机的计算机帐户 和 LCM 用户帐户都必须对 SMB 共享具有读取访问权限。
- **计算机帐户:**这是代表从中调用 API 的计算机的帐户。它表示为
DOMAIN\MACHINE$(例如,example.com\CS$表示example.com域中名为 CS 的计算机)。 - **LCM 用户帐户:**这是用于调用 LCM REST API 的帐户。
要向这两个帐户授予读取访问权限,请执行以下操作:
- 打开 SMB 共享的属性(属性),导航到安全,然后单击编辑以修改权限。
- 添加计算机帐户(例如
example.com\CS$)和 LCM 用户帐户(例如example.com\LCMUser) - 为这两个帐户分配读取权限,并保存对属性所做的更改(依次单击应用和确定)。
然后,要使用 SMB 文件共享托管服务器内部版本安装程序和 LCM 包文件,请按以下方式准备 SMB 文件共享:
- 从 Omnissa Customer Connect 下载服务器 .exe 安装程序和 Horizon Lifecycle Manager 包 (lcm.zip)。
- 将 .exe 安装程序和 lcm.zip 一起放在 SMB 文件共享上的同一目录中。
Web 服务器
要使用 Web 服务器托管服务器内部版本安装程序和 LCM 包文件,请按以下方式准备 Web 服务器:
- 从 Omnissa Customer Connect 下载服务器 .exe 安装程序和 Horizon Lifecycle Manager 包 (lcm.zip)。
- 将 .exe 安装程序和 lcm.zip 一起放在主机 Web 服务器上的同一目录中。
Horizon Connection Server 主机
要使用 Horizon Connection Server 主机托管服务器内部版本安装程序和 LCM 包文件,请按以下方式准备 Horizon Connection Server 主机:
- 如果需要,可将服务器主机配置为信任此信任存储区中的第三方证书颁发机构。
- 从 Omnissa Customer Connect 下载服务器 .exe 安装程序和 Horizon Lifecycle Manager 包 (lcm.zip)。
- 将 .exe 安装程序和 lcm.zip 一起放在服务器主机上的同一目录中。
指定用于调用 LCM API 的管理员帐户
指定将用于调用 LCM API 的 Horizon 管理员帐户。确保此帐户属于将接收安装或升级的每台目标计算机上的本地管理员组。
升级之前
在执行升级之前,请停用目标 Horizon Connection Server 实例。升级完成后,您必须激活每个 Horizon Connection Server 实例,以使其再次可供使用。
将连接服务器主机配置为信任第三方 CA
如果需要,可使用以下过程将 Horizon Connection Server 主机配置为信任此信任存储区中的第三方证书颁发机构 (CA)。
-
以管理员身份打开命令提示符 (
cmd)。 -
导航到 Java bin 目录,例如:
cd "C:\Program Files\Omnissa\Horizon\Server\jre\bin" -
运行
keytool命令将证书导入至信任存储区中:keytool -trustcacerts -keystore "C:\Program Files\Omnissa\Horizon\Server\jre\lib\security\cacerts" -storepass changeit -importcert -alias {YOUR_ALIAS} -file {YOUR_CRT_FILE}将 {YOUR_ALIAS} 替换为证书的唯一别名(例如,
MyCertAlias)。将 {YOUR_CRT_FILE} 替换为证书文件的完整路径(例如,
C:\path\to\certificate.crt)。 -
出现提示时,键入
yes,然后按 Enter 确认并完成证书导入。 -
打开
services.msc并重新启动列出的所有 Omnissa Horizon 组件,以应用证书更改。或者,也可以重新引导服务器以使更改生效。
工作流示例
以下各节说明了典型安装或升级工作流中使用的示例 LCM API 请求。
1. 创建并分配 LCM 特权
要执行 LCM API,您必须创建 LCM_MANAGEMENT 角色并将此角色分配给指定的用户帐户。
创建 LCM_MANAGEMENT 角色:
[POST] /config/v1/roles
{
"description": "Custom LCM role.",
"name": "LCM",
"privileges": [
"LCM_MANAGEMENT"
]
}
将 LCM_MANAGEMENT 角色分配给指定的帐户:
[POST] /config/v1/permissions
[
{
"userOrGroup": "UserOrGroup/Uy0xLTUtMjEtMjMzNzczOTMxMC0yNjQ3NjI3MzY0LTE3NzczMzI0NzktNTAw",
"role": "Role/NmU4MjgwMmYtMDc4Yi00NGI0LWJiYmEtNGU1MWIxYzNhZWRj/TENN",
"accessGroup": "AccessGroup/NmU4MjgwMmYtMDc4Yi00NGI0LWJiYmEtNGU1MWIxYzNhZWRj/Um9vdA"
}
]
**注意:**您还可以创建 LCM_VIEW 角色,并将其分配给仅需要检索 LCM 工作流状态信息的用户帐户。具有 LCM_VIEW 特权的用户具有只读访问权限,无法发出 POST 请求。
2. 注册安装程序内部版本
具有 LCM_MANAGEMENT 角色的用户可以注册将在目标计算机上安装的服务器内部版本。
**注意:**如果升级到 Horizon 8 更高版本,则必须重新注册该更高版本的新服务器内部版本。
- 对于请求参数,请指定托管位置上 .exe 内部版本安装程序的文件 URL。确保 Horizon Lifecycle Manager 包 (lcm.zip) 与 .exe 内部版本安装程序位于同一目录中,如必备条件中所述。
- 对于请求正文,请包含内部版本元数据。
**注意:**在下面的示例中,EXE 是特定的 Horizon Connection Server 安装程序内部版本文件,大括号 ({}) 中的内容表示您从特定设置中提供的值。当你在部署中运行这些命令时,请替换您拥有的特定安装程序文件名以及特定 SMB 共享和 Web 服务器信息。
示例 - SMB 共享
[POST] /rest/config/v1/server-installer-packages/action/register?fileUrl=smb://{smb-share}/{share-name}/Omnissa-Horizon-Connection-Server-x86_64-2503-8.15.0-13513405225.exe
{
"file_size_in_bytes": 401860608,
"version": "8.15.0",
"checksum": "d814d56a30477d07e8128a18c5ec09ba38984129f40911ad332e96c143e4fabb",
"build_number": "13513405225",
"filename": "Omnissa-Horizon-Connection-Server-x86_64-2503-8.15.0-13513405225.exe",
"display_Name": "Omnissa Horizon Connection Server"
}
示例 - Web 服务器
[POST] /config/v1/server-installer-packages/action/register?fileUrl=https://{local-webserver}/installer/Omnissa-Horizon-Connection-Server-x86_64-2406-8.13.0-8565949332.exe
{
"build_number": "8565949332",
"checksum": "d2f31e1bc6de212f11a34b502ec16d66d5bf896947de3288a337c10df8c5be67",
"display_name": "Omnissa Horizon Connection Server",
"file_size_in_bytes": 365891976,
"filename": "Omnissa-Horizon-Connection-Server-x86_64-8.13.0-8565949332.exe",
"version": "2406"
}
如果完成,注册 API 将返回已注册安装程序软件包的唯一 server_installer_package_id。
您还可以使用以下 LCM API 执行其他注册任务。有关详细信息,请参阅每个 API 的参考页面。
| 任务 | API |
| 检索所有已注册安装程序内部版本的列表 | [GET] /config/v1/server-installer-packages |
| 检索具有指定 ID (server_installer_package_id) 的安装程序内部版本的元数据 | [GET] /config/v1/server-installer-packages/{id} |
| 取消注册具有指定 ID (server_installer_package_id) 的安装程序内部版本 | [POST] /config/v1/server-installer-packages/{id}/action/unregister |
3. 检查目标计算机上的安装必备条件
预检查 API 允许您验证目标计算机是否满足相应的要求。在调用任何安装命令之前,请确认您收到了以下预检查请求的积极响应。
验证目标计算机的系统必备条件:
[POST] /config/v1/connection-servers/action/validate-system-requirements
验证目标计算机的 Active Directory 必备条件:
[POST] /config/v1/connection-servers/action/validate-ad-requirements
验证目标计算机的 vCenter Server 必备条件:
[POST] /config/v1/connection-servers/action/validate-virtual-center-requirements
验证要升级的目标计算机的模式主节点和服务器复制状态:
[POST] /config/v1/connection-servers/action/validate-ldap-requirements
4. 运行安装命令
验证目标计算机的必备条件后,可以调用安装或升级 API。
在请求正文中包含以下信息:
| 项 | 值/描述 |
| 域 | Active Directory 域的名称 |
| server_installer_package_id | 在内部版本注册 API 响应中提供的服务器内部版本 ID |
| target_server_fqdn | 目标计算机的完全限定域名 (Fully Qualified Domain Name, FQDN) |
| user_name | 用于在目标计算机上调度安装/升级的用户帐户的名称。该用户必须具有 Horizon 管理员特权,并且属于目标计算机的本地管理员组。 |
| 密码 | 用于在目标计算机上调度安装/升级的用户帐户的密码 |
| server_msi_install_spec | 指定的安装选项,仅安装请求需要。有关完整信息,请参阅 [POST] /config/v1/connection-servers/action/install-connection-server reference 的“结构定义”一节。 |
升级目标计算机上的服务器内部版本:
[POST] /config/v1/connection-servers/action/upgrade-connection-server
{
"domain": "AD-TEST-DOMAIN",
"password": "<password>",
"server_installer_package_id": "a3768752-77c6-45d0-8e20-908227bce79f",
"target_server_fqdn": "server.example.com",
"user_name": "Administrator"
}
在目标计算机上安装服务器内部版本:
[POST] /config/v1/connection-servers/action/install-connection-server
{
"domain": "AD-TEST-DOMAIN",
"password": "<password>",
"server_installer_package_id": "a3768752-77c6-45d0-8e20-908227bce79f",
"server_msi_install_spec": {
"admin_sid": "string",
"deployment_type": "GENERAL",
"fips_enabled": false,
"fw_choice": true,
"html_access": true,
"install_directory": "%ProgramFiles%\\Omnissa\\Horizon\\Server",
"primary_connection_server_fqdn": "server.example.com",
"server_instance_type": "STANDARD_SERVER",
"server_recovery_pwd": "<password>",
"server_recovery_pwd_reminder": "<reminder>",
"vdm_ipprotocol_usage": "IPv4"
},
"target_server_fqdn": "server.example.com",
"user_name": "Administrator"
}
监控安装/升级作业
在目标计算机上调度安装或升级作业后,可以使用以下请求检查作业状态。作为请求参数包含目标计算机的 FQDN。
[POST] /config/v1/connection-servers/action/retrieve-installer-status?{fqdn}
此页面对您有帮助吗?