您可以將 Horizon Edge Gateway 下載並部署至 Amazon Web Services (AWS) 中的 Horizon 8 同盟部署,以便與 Horizon Cloud 配對。如果您要在 Amazon WorkSpaces Core 上部署適用於 Horizon 8 的 Horizon Edge,也可以使用相同程序。
請依照下列步驟下載並部署 Horizon Edge Gateway 應用裝置,適用於使用 AWS 解決方案的同盟架構 Edge 部署。
請依照相同步驟下載並部署適用於在 Amazon WorkSpaces Core 上部署 Horizon 8 Edge 的 Horizon Edge Gateway 應用裝置。
在同盟架構中,或在 Amazon WorkSpaces Core 上部署 Horizon 8 Edge 時,您必須將 Horizon Edge Gateway 部署至 Horizon Cloud 中 Edge 環境內的原生 Amazon Elastic Compute Cloud (EC2) 基礎結構。
先決條件
您必須符合以下先決條件,才能繼續。
-
確認您已符合開始部署 Horizon 8 Edge 中所述的 Horizon Edge Gateway 相關先決條件。
-
確認您已符合在 Horizon 8 環境中部署 Horizon Edge Gateway 前,請確保適當的目的地 URL 可存取所述的條件,以便使用 Horizon Edge Gateway 將 Horizon 8 網繭與 Horizon Cloud 配對。
-
確認您使用的是適當版本的 Horizon Edge Gateway。請參閱 Omnissa 產品互通性對照表。
-
Horizon Edge Gateway 虛擬應用裝置必須能夠連線至網際網路,以與 Horizon Control Plane 通訊。如果您的環境需要使用 Proxy 伺服器與 Proxy 組態,才能讓已部署的應用裝置連線至網際網路,請確認您已檢閱在 Horizon Edge Gateway 應用裝置上使用 Proxy 設定的相關資訊、已知限制及已知問題。
-
如果您打算在使用 configure-edge-gateway.sh 指令碼配對 Edge 時使用 Proxy,則必須先執行下列命令:當啟用 ProxySSL 時指定為 true,否則指定為 false:
/opt/horizon/bin/configure-edge-gateway.sh -p 'Pairing_Code' -x -i 'IP_or FQDN_of Proxy' -r 'Proxy_Port' -m 'Proxy_User_Name' -a 'Proxy_Password' -s 'true_or_false'請參閱以下〈附註〉中的 Proxy 相關資訊。
**附註:**請在 Edge 中更新 Proxy 組態。
/opt/horizon/bin/configure-edge-gateway.sh --configure-proxy --proxy-host 127.0.0.1 --proxy-port 3128 --proxy-username 'exampleUsername' --proxy-password 'examplePassword'若要瞭解更多選項,請使用
-h選項來執行該指令碼,如下所示。/opt/horizon/bin/configure-edge-gateway.sh -h -
您必須針對許多步驟使用命令列。但是,部分部署步驟既可以使用 AWS 管理主控台來執行,也可以使用 AWS 命令列介面 (CLI) 來執行。如需有關使用 Amazon EC2 環境的詳細資訊,請參閱 Amazon Elastic Compute Cloud 說明文件:https://docs.aws.amazon.com/ec2/index.html。在後續步驟中,通常會建議要參考之特定類型的 Amazon Elastic Compute Cloud 說明文件。
程序
-
請依照新增並部署 Horizon 8 Edge 頁面中程序中段的「取得 Horizon Edge Gateway 應用裝置二進位檔」步驟,下載 Horizon Edge Gateway 磁碟映像。回應所有畫面上的提示。
Horizon Edge Gateway 磁碟映像/應用裝置會以 VMDK 檔案提供。將該 VMDK 檔案下載至您的本機系統。
**附註:**請下載最新版的 Horizon Edge Gateway 磁碟映像。建議您使用最新版的 Edge Gateway 應用裝置。如需版本資訊,請參閱 Omnissa 產品互通性對照表。
將下載的二進位檔儲存到您要從中將二進位檔部署到所需虛擬化平台的位置,然後回到此步驟序列,以繼續執行所需的配對程序。
將磁碟映像檔案上傳至 Amazon EC2 環境之前,您必須先建立一個 Amazon S3 值區。
-
在您的 Amazon EC2 環境中建立 Amazon S3 值區。如需詳細指示,請參閱 Amazon Elastic Compute Cloud 說明文件。
-
將下載的 VMDK 檔案上傳至您的 Amazon S3 值區。您可以使用 AWS 管理主控台或 AWS 命令列介面 (CLI) 來執行此步驟。
-
(AWS 管理主控台) 登入至 AWS 管理主控台以存取 Amazon EC2 環境。移至 S3 服務、選取您先前建立的值區,然後將 VMDK 檔案上傳至該值區。
-
(AWS CLI) 存取 AWS CLI 並執行下列命令。
aws s3 cp <file-path-to-VMDK-file> <S3URI>如需關於執行
cp命令的詳細資料,請參閱 Amazon Elastic Compute Cloud 說明文件。
在 AWS 管理主控台中,VMDK 檔案會在物件索引標籤中列出。
-
-
建立一個服務角色和一個原則,並將該原則連結至該角色。
-
建立此程序所需三個新 JSON 檔案中的第一個檔案。
此 JSON 檔案會用來儲存服務角色資訊。視需要命名該檔案。在此程序中,此檔案的範例檔案名稱為
trust-policy.json。下列文字是 JSON 檔案內容的範例。
{ "Version":"2022-10-17", "Statement":[ { "Sid":"", "Effect":"Allow", "Principal":{ "Service":"vmie.amazonaws.com" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "sts:ExternalId":"vmimport" } } } ] } -
使用您選擇的名稱建立一個服務角色,然後將角色資訊儲存在新的 JSON 檔案中。
例如,使用 CLI 執行如下命令。
下列命令是一般範例。
aws iam create-role --role-name <role-name> --assume-role-policy-document <file-path>下列範例命令會將預留位置
<role-name>取代為具體範例值 vmimport,並將預留位置<file-path>取代為具體範例值 trust-policy.json。aws iam create-role --role-name vmimport --assume-role-policy-document file://trust-policy.json如需關於執行
create-role命令的詳細資料,請參閱 Amazon Elastic Compute Cloud 說明文件。 -
建立此程序所需三個新 JSON 檔案中的第二個檔案。
提供用來上傳 VMDK 檔案之值區的名稱,例如 <bucket-name>,即下方範例中使用的名稱。
此 JSON 檔案的用途是將新原則附加至新角色。視需要命名該檔案。在此程序中,此檔案的範例檔案名稱為
role-policy.json。以下文字為
role-policy.json範例檔案的內容。{ "Version":"2022-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource":[ "arn:aws:s3:::<bucket-name>" ] }, { "Effect":"Allow", "Action":[ "s3:GetObject" ], "Resource":[ "arn:aws:s3:::<bucket-name>/*" ] }, { "Effect":"Allow", "Action":[ "ec2:ModifySnapshotAttribute", "ec2:CopySnapshot", "ec2:RegisterImage", "ec2:Describe*" ], "Resource":"*" } ] } -
建立一個原則、將其連結至新角色,然後將它們儲存至新建立的 JSON 檔案中。
例如,使用 CLI 執行如下命令。
下列命令是一般範例。
aws iam put-role-policy --role-name <role-name> --policy-name <policy-name> --policy-document <file-path>以下具體範例會以名為
vmimport的原則取代預留位置 <role-name>,以先前命名角色的具體範例 (同樣名為vmimport) 取代預留位置 <policy-name>,並以先前命名的 JSON 檔案role-policy.json取代預留位置 <file-path>。aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document file://role-policy.json如需關於執行
put-role-policy命令的詳細資料,請參閱 Amazon Elastic Compute Cloud 說明文件。
-
-
從匯入的 VMDK 檔案匯入快照。
-
建立此程序所需三個新 JSON 檔案中的第三個檔案。
在此檔案中納入下列資訊。
-
值區名稱,例如下方範例中使用的 <bucket-name>。
-
上傳至 Amazon S3 值區之 VMDK 檔案的檔案名稱,例如下方範例中使用的 <vmdk-file-name-uploaded-to-S3>。
此 JSON 檔案的用途是儲存匯入 VMDK 檔案的快照。視需要命名該檔案。在此程序中,此檔案的範例檔案名稱為
container.json。以下文字為
container.json範例檔案的內容。{ "Description": "Adapter-VM", "Format": "vmdk", "UserBucket": { "S3Bucket": "<bucket-name>", "S3Key": "<vmdk-file-name-uploaded-to-S3>" } } -
-
執行命令以將快照從已匯入 VMDK 檔案匯入至新建立的 JSON 檔案中。
使用 CLI 執行下列類型的命令。
aws ec2 import-snapshot --role-name <role-name> --description <description> --disk-container <file-path>如需關於執行
import-snapshot命令的詳細資料,請參閱 Amazon Elastic Compute Cloud 說明文件。以下命令是
import-snapshot命令的具體範例,其中role-name參數為選用且未使用,說明為"Adapter-VM",而容器檔案名稱為container.json。aws ec2 import-snapshot --description "Adapter-VM" --disk-container file://container.jsonimport-snapshot命令可能需要幾分鐘才能完成。但是,在執行該命令後,該命令會建立輸出,其中包含可用來追蹤工作進度的ImportTaskId行。下列輸出為一個範例。{ "ImportTaskId": "import-snap-05b4c84af4xxxxxxx", "Description": "Adapter-VM", "SnapshotTaskDetail": { "StatusMessage": "pending", "UserBucket": { "S3Bucket": "awsbucket", "S3Key": "edge-gw-2.3.3.0-22720582.ec2.vmdk" }, "Progress": "0", "Status": "active", "Description": "Adapter-VM", "DiskImageSize": 0.0 } } -
記下
import-snapshot命令輸出中的ImportTaskId值。
-
-
若要追蹤
import-snapshot工作的進度並取得快照識別碼,請執行下列命令。aws ec2 describe-import-snapshot-tasks --import-task-ids <import-task-id>將
<import-task-id>預留位置取代為 import-snapshot 命令輸出中列出的值。上述範例輸出中列出的範例值為import-snap-05b4c84af4xxxxxxx。如需關於執行describe-import-snapshot-tasks命令的詳細資料,請參閱 Amazon Elastic Compute Cloud 說明文件。describe-import-snapshot-tasks命令會提供指示import-snapshot工作進度的輸出,並在工作完成時提供登錄映像所需的快照識別碼。例如。"Progress": "43"。輸出中的行,例如此行指出import-snapshot工作的進度百分比。在此範例中,工作已完成 43%。"Status": "completed"。輸出中的行,例如此行指出import-snapshot工作已完成。"SnapshotId": "snap-06d42e043bxxxxxxx"。輸出中的行,例如工作完成後將納入此行。對於此範例,快照識別碼為snap-06d42e043bxxxxxxx。
-
記下
describe-import-snapshot-tasks命令輸出中的快照識別碼。 -
若要登錄快照映像,請執行
register-image命令。aws ec2 register-image --region us-west-2 --name <image-name> --architecture x86_64 --root-device-name '/dev/sda1' --virtualization-type hvm --ena-support --block-device-mappings DeviceName=/dev/sda1,Ebs={SnapshotId=<SnapshotId>}其中,您必須為每個選項 (例如,
--region、--architecture等) 提供專用於您部署的回應。如需關於執行register-image命令的詳細資料,請參閱 Amazon Elastic Compute Cloud 說明文件。下列資訊專用於
--name選項和SnapshotId參數。--name- 根據字串的限制,來提供映像名稱。SnapshotId- 提供describe-import-snapshot-tasks命令輸出中的快照識別碼。register-image命令提供的輸出中包含 Amazon Machine Image (AMI) 的識別碼。下列範例是一般register-image輸出。
{ "ImageId": "ami-0721ee000321c4685" }register-image命令輸出中指出的 AMI 也會顯示在 AMI 清單之間的 AWS 管理主控台中。 -
若要支援建立與設定 Horizon Edge Gateway AMI 執行個體,請準備一個啟動指令碼,內容類似以下範例。
#!/bin/bash /opt/horizon/bin/configure-adapter.py --sshEnable echo -e '<password>\n<password>' | passwd admin echo -e '<password>\n<password>' | passwd ccadmin echo 'cs_ip cs_fqdn' >> /etc/hosts在此範例中,指令碼支援下列組態:
- 啟用 Horizon Edge Gateway 應用裝置的 SSH 存取功能。
- 在應用裝置上使用所定義的密碼 (\n) 建立管理員使用者帳戶。請確保密碼具備強度。強式密碼至少需包含 8 個字元,且必須包含一或多個數字、大小寫字母及特殊字元。
- 在應用裝置上使用所定義的密碼 (\n) 建立 ccadmin 使用者帳戶。請確保密碼具備強度。強式密碼至少需包含 8 個字元,且必須包含一或多個數字、大小寫字母及特殊字元。
- 將連線伺服器主機名稱 (cs_fqdn) 解析為連線伺服器 IP 位址 (cs_ip)。 您必須在下一個步驟中啟動 Horizon Edge Gateway AMI 執行個體時,將此指令碼新增至 user-data。
-
啟動 Horizon Edge Gateway 的 AMI 執行個體。
**附註:**為確保執行個體具備足夠效能,請使用 c5.2xlarge 或更高型號。
您可以使用 AWS 管理主控台或 CLI 來啟動執行個體。在任一情況下,請使用
register-image命令輸出中所提供的 Amazon Machine Image (AMI) 的識別碼,並將您在上一個步驟中準備的啟動指令碼新增至 user-data。**附註:**您必須在此時新增啟動指令碼,因為 user-data 僅會在 AMI 執行個體的首次開機時執行。
若要使用 CLI,請參閱 Amazon Elastic Compute Cloud 說明文件以瞭解關於執行
run-instances命令的詳細資料。若要使用 AWS 管理主控台,請參閱 Amazon Elastic Compute Cloud 說明文件以瞭解相關詳細資料,例如使用啟動執行個體精靈啟動執行個體的相關資訊。
如果您選擇使用 AWS 管理主控台來啟動執行個體,請依映像識別碼找出新的 AMI,接著選取該 AMI,然後按一下啟動。接下來,您可以繼續透過精靈提供部署的詳細資訊。
-
在 Horizon Edge Gateway AMI 啟動後,請編輯 AMI 執行個體的組態並移除啟動指令碼。
-
透過 SSH 連線至 Horizon Edge Gateway 虛擬機器 AWS 執行個體。
若要使用 CLI 或 AWS 管理主控台,請參閱 Amazon Elastic Compute Cloud 說明文件,以取得有關連線至執行個體的詳細資料。我們建議使用 SSH,以允許複製貼上配對金鑰。
如需相關資訊,請參閱為 Horizon Edge 啟用 SSH 存取。
如需相關資訊,另請參閱 AWS 產品說明文件中的連線至 Linux 執行個體和使用 EC2 Instance Connect 連線至 Linux 執行個體。
-
使用下列命令格式執行配對 Edge 指令碼,其中 pairing_code 是您從新增並部署 Horizon 8 Edge 中所述之步驟 9 螢幕擷取畫面複製的配對代碼。
sudo su - /opt/horizon/bin/configure-edge-gateway.sh -p <pairing_code> -
為了提高安全性,請考慮在完成這些步驟後停用 SSH。
-
返回 Horizon Universal Console,以完成 Horizon Connection Server 詳細資料的設定。請參閱新增並部署 Horizon 8 Edge。
此頁面對您有幫助嗎?