本节介绍了如何使用 PowerShell 命令将 Unified Access Gateway 2111 或更高版本部署到 Amazon Web Services Elastic Compute Cloud (EC2),以及创建任何 Unified Access Gateway 实例之前准备 EC2 环境的步骤。
建议的操作系统和 PowerShell 版本
| 操作系统 | 建议的操作系统版本 | PowerShell 版本 |
|---|---|---|
| Windows | 10 和 11 | 5 和 7 |
| Ubuntu | 20.04、22.04、24.04 | 7 |
必备条件
-
具有足够特权部署 EC2 实例的 AWS 帐户。有关详细信息,请参阅 Amazon AWS 文档。
-
确保在 IAM 角色中允许以下策略以便成功部署。
s3:PutObject s3:PutObjectAcl s3:GetBucketLocation ec2:DescribeNetworkInterfaces ec2:ModifyNetworkInterfaceAttribute ec2:CreateNetworkInterface ec2:DescribeInstances ec2:RunInstances ec2:TerminateInstances ec2:DescribeSubnets ec2:DescribeSecurityGroups ec2:DescribeAddresses ec2:AssociateAddress ec2:DescribeRegions ec2:DescribeImages ec2:CreateTags
步骤
步骤 1。为 Powershell 准备客户机
在您的计算机上安装 AWSPowerShell。请参阅在 Windows 上安装适用于 PowerShell 的 AWS Tools。
- 使用管理权限打开 Powershell 命令窗口。
- 运行以下命令。
Windows Ubuntu Install-Module -Name AWSPowerShell -Force Install-Package 7Zip4PowerShellInstall-Module -Name AWS.Tools.Common Install-AWSToolsModule AWS.Tools.EC2,AWS.Tools.S3 -CleanUp
步骤 2。在客户机上设置 AWS 配置文件和区域
- 在 AWS 控制台中,创建访问密钥,并获取访问密钥 ID 和私有访问密钥。请在默认配置文件中设置这些内容。
有关详细信息,请参阅为 root 用户创建访问密钥。
(可选)仅当您没有访问密钥 ID 和私有访问密钥时,此步骤才适用。``` Set-AWSCredential -AccessKey AKIAI6428NKYOEXAMPLE ` -SecretKey bvfhkvvfhsbvhsdbhfbvfhfhvfhdskvbhfvbfhEXAMPLE ` -StoreAs default ```(可选)设置 AWS 区域。
注意:您可以使用 Get-AWSRegion 命令确定要使用的区域。``` Set-DefaultAWSRegion -Region us-west ``` - 在 Amazon S3 中创建一个存储桶,以存储 Unified Access Gateway
.vmdk映像(如果尚不存在)。有关更多信息,请参阅创建存储桶。
例如,请考虑创建名为“uag-images”的存储桶。``` $bucket="uag-images" New-S3Bucket -BucketName $bucket -Region us-east-2 ``` - 在 Amazon AWS 中创建一个名为
vmimport的 IAM 角色,并对该角色应用策略。
``` $importPolicyDocument = @" { "Version":"2012-10-17", "Statement":[ { "Sid":"", "Effect":"Allow", "Principal":{ "Service":"vmie.amazonaws.com" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "sts:ExternalId":"vmimport" } } } ] } "@ New-IAMRole -RoleName vmimport -AssumeRolePolicyDocument $importPolicyDocument $bucket="uag-images" $rolePolicyDocument = @" { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::$bucket", "arn:aws:s3:::$bucket/*" ] }, { "Effect": "Allow", "Action": [ "ec2:ModifySnapshotAttribute", "ec2:CopySnapshot", "ec2:RegisterImage", "ec2:Describe*" ], "Resource": "*" } ] } "@ Write-IAMRolePolicy -RoleName vmimport -PolicyName vmimport -PolicyDocument $rolePolicyDocument ``` - (可选)在 EC2 中准备网络环境。
注意:可以从 EC2 管理控制台或使用 PowerShell 执行这些步骤。只需完成这些步骤一次,即可为 Unified Access Gateway 部署准备 EC2 环境。为此,至少需要一个子网。对于多网卡 Unified Access Gateway 部署,每个网卡可以位于同一子网中,也可以位于不同的子网中。 - (可选)创建子网。有关更多信息,请参阅创建子网。
- (可选)为每种类型的网卡创建安全组。
安全组包含一组用于限制 TCP 和 UDP 端口访问的防火墙规则。一个安全组可以在多个 Unified Access Gateway 设备之间共享。例如,您可以为
eth0创建一个名为 UAG-Internet 的安全组,并在创建 Unified Access Gateway 设备时自动与第一个网卡相关联。
要使用 Horizon,第一个 (UAG-Internet) 可以允许任何客户端中的 TCP 端口 80、443、8443、4172 和 UDP 端口 443、8443、4172。如果要允许通过ssh访问 Unified Access Gateway,则必须在每个.ini文件的 [General] 节中指定sshEnabled=true。SSH 通常应仅用于测试目的,而不能用于生产部署。您还应确保在安全组中将 TCP 端口 22 上的ssh访问限制为单个源 IP 地址,以便不会向所有人开放。 有关更多信息,请参阅创建安全组。
- 如果可以直接从 Internet 访问 Unified Access Gateway 设备,则每个需要访问权限的网卡都必须具有关联的公共 IP 地址(称为弹性 IP)。有关详细信息,请参阅分配弹性 IP 地址。
- 对于每个网卡,确定子网 ID、安全组 ID 和公共 IP 分配 ID。
如果没有为任何网卡指定安全组 ID,将使用默认安全组。
如果未指定公共 IP ID,则该网卡将没有公共 IP 地址,因此无法直接从 Internet 进行访问。如果在一组 Unified Access Gateway 设备前面使用负载均衡器,可能会出现这种情况。
步骤 3 使用 PowerShell 上载 Unified Access Gateway 映像
-
从 Customer Connect 门户下载 Unified Access Gateway
.ova映像文件。此文件的版本必须是 2111 或更高版本。 -
从
.ova文件提取.vmdk映像。Windows Ubuntu
例如,expand-7zip ova-filename target-locationeuc-unified-access-gateway-x.y.0.0-12345678_OVF10.ova是下载的文件,其中x-y是版本号,12345678是内部版本号。 要将.vmdk文件提取到C:\temp,请运行以下命令:expand-7zip C:\uag\euc-unified-access-gateway-x.y.0.0-12345678_OVF10.ova C:\uag\
例如,tar -xvf ova-filenametar -xvf euc-unified-access-gateway-x.y.0.0-12345678_OVF10.ova -
将 .
vmdk映像上载到 S3 存储桶中。$vmdkImage="euc-unified-access-gateway-x.y.0.0-12345678-system.vmdk" $bucket="uag-images" $region="us-east-2" $params = @{ "BucketName"=$bucket "File"="C:\uag\"+$vmdkImage "key"="/"+$vmdkImage "Region"=$region } Write-S3Object @params -
导入 EC2 快照。
$params = @{ "DiskContainer_Format"="VMDK" "DiskContainer_S3Bucket"=$bucket "DiskContainer_S3Key"=$vmdkImage "Region"=$region } $impId=Import-EC2Snapshot @params -
要跟踪导入,请定期运行以下命令以获取进度状态。
注意:导入过程需要几分钟时间。(Get-EC2ImportSnapshotTask -ImportTaskId ` $impId.ImportTaskId).SnapshotTaskDetail -
完成后,以下命令必须显示 SnapshotId。
(Get-EC2ImportSnapshotTask -ImportTaskId ` $impId.ImportTaskId).SnapshotTaskDetail.SnapshotId -
将映像注册为 Amazon Machine Image (AMI)。
$bdm=New-Object Amazon.EC2.Model.BlockDeviceMapping $bd=New-Object Amazon.EC2.Model.EbsBlockDevice $bd.SnapshotId=(Get-EC2ImportSnapshotTask ` -ImportTaskId $impId.ImportTaskId).SnapshotTaskDetail.SnapshotId $bd.DeleteOnTermination=$true $bdm.DeviceName="/dev/sda1" $bdm.Ebs=$bd $params = @{ "BlockDeviceMapping"=$bdm "RootDeviceName"="/dev/sda1" "Name"=$vmdkImage "Architecture"="x86_64" "VirtualizationType"="hvm" "EnaSupport"=$true } Register-EC2Image @params
在 AWS 控制台中,您应该会在 EC2 AMI 映像中看到导入的映像。

步骤 4. 为 AWS 准备 INI 文件
对于 AWS EC2 部署,不使用“General”节中的以下设置。
- diskMode
- ds
- folder
- netInternet
- netManagementNetwork
- netmask0、netmask1、netmask2
- netBackendNetwork
- source
- target
- 所有 IPv4 和 IPv6 设置
对于 AWS EC2,有一个名为 AmazonEC2 的新组,其中包含特定于 AWS EC2 的所有设置。
特定于 AWS EC2 的设置
AmazonEC2 组| 值 | 示例 | 描述 |
|---|---|---|
amiId | |
已注册的 Amazon 计算机映像 (Amazon Machine Image, AMI) 的 ID。这表示上载到 Amazon S3 的 Unified Access Gateway 设备映像。
注意:这是必需设置。 |
credentialProfileName | | 包含访问密钥 ID 和私有访问密钥的凭据配置文件的名称。必须先进行此设置。如果未进行此设置,部署将尝试使用默认凭据配置文件。 |
instanceType | | AWS EC2 实例类型。默认值为 c4.large。 |
ipv6AddressCount0
ipv6AddressCount1
ipv6AddressCount2 | | EC2 DHCP 用于 eth0、eth1 或 eth2 的 IPv6 地址计数。
这是可选字段。如果任何网卡需要 IPv6,可以将此字段的值设置为 1。
如果未指定任何值,则每个网卡的默认值为 0。 |
region | | AWS EC2 区域名称。
注意:这是必需设置。 |
privateIPAddress0
privateIPAddress1
privateIPAddress2 | |
EC2 DHCP 用于 eth0、eth1 或 eth2 的可选固定 IP 地址。通常,此设置不是必需设置,但可用于设置静态专用 IP 地址,而不是动态 IP 地址。 |
publicIPId0
publicIPId1
publicIPId2 | |
与 eth0、eth1 或 eth2 关联的 AWS EC2 弹性公共 IP 地址 ID。此设置对于每个网卡都是可选的。 |
securityGroupId0
securityGroupId1
securityGroupId2 | |
与 eth0、eth1 或 eth2 关联的 AWS EC2 安全组 ID。同一安全组可供多个 Unified Access Gateway 实例使用。
注意:此设置是可选的。 如果未指定此设置,将使用默认 EC2 安全组。 |
subnetId0
subnetId1
subnetId2 | |
与 eth0、eth1 或 eth2 关联的 AWS EC2 子网 ID。
|
INI 文件定义示例
[General]
name=UAG12
deploymentOption=twonic
[AmazonEC2]
# authentication
credentialProfileName=awsCredentialProfile
# type, region and image
instanceType=c4.large
region=us-east-2
amiId=ami-1986bb7c
# eth0 settings
subnetId0=subnet-5c980935
securityGroupId0=sg-00877c33656609407
publicIPId0=eipalloc-027afa45f34984c87
# eth1 settings
subnetId1=subnet-1f2743c2
步骤 5:将 Unified Access Gateway 部署到 Amazon AWS EC2
-
在 Omnissa Customer Connect 下载页面中,转到 Unified Access Gateway (UAG) PowerShell 脚本 文件,然后单击立即下载。
zip 文件uagdeploy-xx.xx.x.x-xxxxxxxx将下载到您的本地计算机上。 -
确保以下 PowerShell 脚本已下载到您的 Windows 计算机上。
uagdeployec2.ps1和uagdeploy.psm1 -
打开 PowerShell 窗口并运行以下命令。
uagdeployec2.ps1 <file_name>.ini
其中,file_name是 INI 文件的名称。
3. 输入管理员密码。
现在,您可以使用公共 IP 访问 UAG 管理 UI。

-
要验证部署是否已完成,请使用 SSH 登录到 UAG,然后运行以下命令:
tail /opt/omnissa/gateway/logs/admin.log -
使用
https://uag-ip或FQDN:9443/admin登录到管理 UI,然后根据您的要求配置设置。
后续操作
- 停止 Unified Access Gateway 实例。
- 使用以下命令清除当前 Unified Access Gateway 实例中的
userData值:edit-EC2InstanceAttribute -InstanceId i-12345678 -Attribute userData -Value "blank"。
此页面对您有帮助吗?