請遵循以下步驟,針對使用同盟架構在 VMware Cloud on AWS 中部署的網繭,下載並部署 Horizon Cloud Connector 應用裝置。在同盟架構中,您必須將 Horizon Cloud Connector 部署至網繭環境內的原生 Amazon Elastic Computer Cloud (EC2) 基礎結構中。
重要: 此資訊僅適用於在您有權存取第一代控制平面中的第一代租用戶環境時。如
知識庫文章 92424 中所述,第一代控制平面已終止提供 (EOA)。請參閱此文章以取得詳細資料。
如需關於 Horizon 網繭部署架構的背景資訊,請參閱第一代租用者 - 具有第一代 Horizon Cloud 的 Horizon 網繭部署架構。
下列高階概觀說明了將 Horizon Cloud Connector 部署至網繭環境內原生 Amazon EC2 基礎結構時所需的步驟。
- 下載 VMDK 格式的 Horizon Cloud Connector 檔案。
- 在 Amazon EC2 上建立一個 Amazon Simple Storage Service (S3) 值區,並將應用裝置 VMDK 檔案上傳至該值區。
- 從上傳的 VMDK 檔案建立自訂映像。
- 從自訂映像建立 Horizon Cloud Connector 虛擬機器 (VM) 執行個體。
重要: 將
Horizon Cloud Connector 部署到原生 Amazon EC2 基礎架構時,依預設,會停用下列
Horizon Cloud 服務。部署應用裝置後,您可以選擇性地
手動啟用其中一或多項服務。
- Cloud Monitoring Service
- 雲端代理用戶端服務
- 映像位置服務
程序
- 使用訂閱電子郵件中提供的連結,下載 Horizon Cloud Connector 磁碟映像。
備註: 若要支援將應用裝置部署至 Amazon EC2 環境,必須下載 2.0 版或更新版本的
Horizon Cloud Connector 磁碟映像。
Horizon Cloud Connector 磁碟映像會在您使用 My VMware 帳戶認證登入 my.vmware.com 後,以 VMDK 檔案形式提供。將 VMDK 檔案下載至您的本機系統。
將磁碟映像檔案上傳至 Amazon EC2 環境之前,您必須先建立一個 Amazon S3 值區。
- 在您的 Amazon EC2 環境中建立 Amazon S3 值區。如需詳細說明,請參閱 Amazon Elastic Compute Cloud 說明文件。
- 將下載的 VMDK 檔案上傳至您的 Amazon S3 值區。您可以使用 AWS 管理主控台或 AWS 命令列介面 (CLI) 來執行此步驟。
在 AWS 管理主控台中,VMDK 檔案會在
物件索引標籤中列出。
- 建立一個服務角色和一個原則,並將該原則連結至該角色。
- 建立此程序所需三個新 JSON 檔案中的第一個檔案。
此特定 JSON 檔案會用來儲存服務角色資訊。視需要命名該檔案。在此程序中,此檔案的範例檔案名稱為
trust-policy.json。
- 使用您選擇的名稱建立一個服務角色,然後將角色資訊儲存在新的 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 檔案的內容範例。
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"",
"Effect":"Allow",
"Principal":{
"Service":"vmie.amazonaws.com"
},
"Action":"sts:AssumeRole",
"Condition":{
"StringEquals":{
"sts:ExternalId":"vmimport"
}
}
}
]
}
- 建立此程序所需三個新 JSON 檔案中的第二個檔案。
提供用來上傳 VMDK 檔案之值區的名稱,例如
<bucket-name>,即下方範例中使用的名稱。
此特定 JSON 檔案會用來將新原則連結至新角色。視需要命名該檔案。在此程序中,此檔案的範例檔案名稱為
role-policy.json。
下列文字是範例
role-policy.json 檔案的內容範例。
{
"Version":"2012-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 檔案中。
下列命令是一般範例。
aws iam put-role-policy --role-name <role-name> --policy-name <policy-name> --policy-document <file-path>
下列特定範例會將預留位置 <role-name> 取代為名為 vmimport
的特定原則範例、將預留位置 <policy-name> 取代為先前命名角色的特定範例 (也名為 vmimport
),並將預留位置 <file-path> 取代為先前命名之 JSON 檔案的特定範例,即 role-policy.json。
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.json
import-snapshot 命令可能需要幾分鐘才能完成。但是,在執行該命令後,該命令會建立輸出,其中包含可用來追蹤工作進度的
ImportTaskId
行。下列輸出為一個範例。
{
"ImportTaskId": "import-snap-05b4c84af4xxxxxxx",
"Description": "Adapter-VM",
"SnapshotTaskDetail": {
"StatusMessage": "pending",
"UserBucket": {
"S3Bucket": "awsbucket",
"S3Key": "horizon-cloud-connector-2.0.0.0-18191154_OVF10-disk1.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 Cloud Connector AMI 執行個體,請準備類似下列範例的啟動指令碼。
#! /bin/bash
/usr/bin/python3 /opt/vmware/bin/configure-adapter.py --sshEnable
sudo useradd ccadmin
echo -e 'password\npassword' | passwd ccadmin
echo 'cs_ip cs_fqdn' >> /etc/hosts
在此範例中,指令碼支援下列組態:
- 啟用透過 SSH 來存取 Horizon Cloud Connector 應用裝置。
- 在應用裝置上建立
ccadmin
使用者帳戶,且其具有已定義的密碼 (password)。請確定您定義了強式密碼。強式密碼至少為 8 個字元,並且必須包含一或多個數字、大小寫字母以及特殊字元。
- 將連線伺服器主機名稱 (cs_fqdn) 解析為連線伺服器 IP 位址 (cs_ip)。
您必須在下一個步驟中啟動 Horizon Cloud Connector AMI 執行個體時,將此指令碼新增至 user-data 中。
- 啟動 Horizon Cloud Connector 的 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 Cloud Connector AMI 啟動後,編輯 AMI 執行個體的組態,並移除啟動指令碼。