本节介绍了如何使用 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
步骤
- 为 Powershell 准备客户机
- 在客户机上设置 AWS 配置文件和区域
- 使用 PowerShell 上载 Unified Access Gateway 映像
- 为 AWS 准备 INI 文件
- 将 Unified Access Gateway 部署到 Amazon AWS EC2
步骤 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 和私有访问密钥。请在配置文件中设置这些内容。
- 运行以下命令以存储凭据。
- 将凭据存储在配置文件中
- 当凭据具有 sessionToken 时
Set-AWSCredential -AccessKey <accesskey> -SecretKey <secretkey> -StoreAs <profile_name>Set-AWSCredential -AccessKey <accesskey> -SecretKey <secretkey> -sessionToken <sessionToken> -StoreAs <profile_name> - 运行以下命令以初始化配置文件。
- 设置 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 设备前面使用负载均衡器,可能会出现这种情况。
Set-AWSCredential -ProfileName <profile_name>
步骤 3 使用 PowerShell 上载 Unified Access Gateway 映像
从 Customer Connect 门户下载 Unified Access Gateway .ova 映像文件。
选项 1:使用内置脚本自动创建新的 AMI。转至步骤 4 以继续。
选项 2:使用 .vmdk 映像手动创建新的 AMI。
-
从
.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 文件
[General] 节设置
在 [General] 节中配置所需的设置。请参阅 PowerShell 部署参数。
[General] 节中用于运行脚本的其他设置
| 设置 | 描述 |
|---|---|
| source | 输入源 OVA 文件的位置。
例如: C:\Users\User1\Downloads\ova\euc-unified-access-gateway-25.03.0.0-13143769531_OVF10.ova |
| vmdkExtractionDir | 输入提取的 vmdk 文件的位置。如果未指定路径,则会将 vmdk 文件下载到 ova 文件所在的位置。 |
[General] 节中未使用的设置
对于 AWS EC2 部署,不使用 [General] 节中的以下设置。
| 设置 | 描述 |
|---|---|
| diskMode | 未使用 |
| ds | |
| folder | |
| netInternet | |
| netManagementNetwork | |
| netmask0、netmask1、netmask2 | |
| netBackendNetwork | |
| target | |
| 所有 IPv4 和 IPv6 设置 |
[AmazonEC2] 节设置
| 值 | 示例 | 描述 |
|---|---|---|
s3Bucket | s3Bucket=uag-bucket | 输入用于存储 Unified Access Gateway .vmdk 映像的 S3 存储桶的名称。 |
amiId | amiId= |
Unified Access Gateway 的 Amazon 计算机映像 (AMI)。
|
credentialProfileName | credentialProfileName=MyUAGProfile | 包含访问密钥 ID 和私有访问密钥的凭据配置文件的名称。必须先进行此设置。如果未进行此设置,部署将尝试使用默认凭据配置文件。 |
instanceType | instanceType=c4.large | AWS EC2 实例类型。默认值为 c4.large。 |
region | region=us-east-2 | AWS EC2 区域名称。
注意:这是必需设置。 |
ipv6AddressCount0
ipv6AddressCount1
ipv6AddressCount2 | ipv6AddressCount0=1 | EC2 DHCP 用于 eth0、eth1 或 eth2 的 IPv6 地址计数。
这是可选字段。如果任何网卡需要 IPv6,可以将此字段的值设置为 1。
如果未指定任何值,则每个网卡的默认值为 0。 |
privateIPAddress0
privateIPAddress1
privateIPAddress2 | privateIPAddress1= 172.31.7.222 |
EC2 DHCP 用于 eth0、eth1 或 eth2 的可选固定 IP 地址。通常,此设置不是必需设置,但可用于设置静态专用 IP 地址,而不是动态 IP 地址。 |
publicIPId0
publicIPId1
publicIPId2 |
publicIPId0=eipalloc-027afa45f34984c87
|
与 eth0、eth1 或 eth2 关联的 AWS EC2 弹性公共 IP 地址 ID。此设置对于每个网卡都是可选的。 |
securityGroupId0
securityGroupId1
securityGroupId2 | securityGroupId0=sg-00877c33656609407 |
与 eth0、eth1 或 eth2 关联的 AWS EC2 安全组 ID。同一安全组可供多个 Unified Access Gateway 实例使用。
注意:此设置是可选的。 如果未指定此设置,将使用默认 EC2 安全组。 |
subnetId0
subnetId1
subnetId2 | subnetId1=subnet-5c980935 |
与 eth0、eth1 或 eth2 关联的 AWS EC2 子网 ID。
|
INI 文件定义示例
[General]
name=uag-auto-deployment
uagName=uag-auto-deployment
deploymentOption=onenic
sshEnabled=true
sshKeyAccessEnabled=true
sshPasswordAccessEnabled=true
allowedHostHeaderValues=ws1uag.uagad.com,userws1.uagad.com,encrypted.uagad.com,unencrypted.uagad.com,adminsaml.uagad.com,uagsaml.uagad.com,104.211.224.216
source=C:\Users\User1\Downloads\ova\euc-unified-access-gateway-25.03.0.0-13143769531_OVF10.ova
vmdkExtractionDir=C:\Users\User1\Downloads\ova\vmdk
[AmazonEC2]
s3Bucket=uag-bucket
# authentication
credentialProfileName=profile1
# type, region and image
instanceType=c5.2xlarge
instanceType=c4.large
region=us-east-2
amiId=
# eth0 settings
ipv6AddressCount0=0
subnetId0=subnet-04dfec81f4eeb7722
securityGroupId0=sg-0fb1c6059c7e3e1f2
publicIPId0=eipalloc-07a5b07b13ced2a45
步骤 5:将 Unified Access Gateway 部署到 Amazon AWS EC2
-
在 Omnissa Customer Connect 中,转到 Unified Access Gateway (UAG) PowerShell 脚本文件,然后单击立即下载。
zip 文件uagdeploy-xx.xx.x.x-xxxxxxxx将下载到您的本地计算机上。 -
从该 zip 文件中提取文件。确保以下 PowerShell 脚本在您的计算机上可用。
uagdeployec2.ps1和uagdeploy.psm1 -
打开 PowerShell 窗口并运行以下命令。
uagdeployec2.ps1 <file_name>.ini其中,
file_name是 INI 文件的名称。
4. 输入管理员密码。
现在,您可以使用公共 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"
此页面对您有帮助吗?