自 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 提供者。您可以搭配該 Terraform 提供者使用 LCM API,以自動化 Horizon 8 部署的生命週期管理。
使用 LCM API 搭配 Terraform 提供者時,需符合標準的先決條件。
您可透過以下網址取得適用於 Horizon 8 的 Terraform 提供者:https://github.com/euc-dev/horizon-terraform。
先決條件
在使用 LCM API 之前,您必須先完成以下先決條件。此頁面各章節將詳述每項設定:
- 安裝 Horizon Connection Server 版本 2406 或更新版本
- 設定 WinRM
- 主機部署方式準備
- 指定用於叫用 LCM API 的管理員帳戶
- 如有需要,請設定連線伺服器主機,使其信任第三方 CA
版本 2406 或更新版本
至少安裝或升級至一個 Horizon Connection Server 2406 或更新版本的執行個體。LCM API 僅從 Horizon Connection Server 版本 2406 起才可供使用。
**附註:**若為全新的 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://前置詞。例如,若 EXE 檔案名為Omnissa-Horizon-Connection-Server-x86_64-2503-8.15.0-13513405225,則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$(例如,若機器名稱為 CS,所屬網域為example.com,則機器帳戶為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 主機:
- 如有需要,請在伺服器主機上設定信任存放區,將第三方憑證授權機構 (CA) 加入信任清單。
- 從 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 |
| 擷取具有指定識別碼 (server_installer_package_id) 的安裝程式組建版本中繼資料 | [GET] /config/v1/server-installer-packages/{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 回應中提供的伺服器組建識別碼 |
| target_server_fqdn | 目標機器的完整網域名稱 (FQDN) |
| user_name | 用於在目標機器上排程安裝或升級作業的使用者帳戶名稱。該使用者必須具備 Horizon 管理員權限,並且已加入目標機器的本機管理員群組。 |
| 密碼 | 用於在目標機器上排程安裝或升級作業的使用者帳戶密碼。 |
| server_msi_install_spec | 指定的安裝選項 (僅安裝要求需提供)。如需完整資訊,請參閱 [POST] /config/v1/connection-servers/action/install-connection-server 參考文件中的〈架構〉一節。 |
在目標機器上升級伺服器組建版本:
[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}
此頁面對您有幫助嗎?