Skip to main content

2026 年 7 月 20 日

通过 PowerShell 部署到 Amazon AWS EC2

本节介绍了如何使用 PowerShell 命令将 Unified Access Gateway 2111 或更高版本部署到 Amazon Web Services Elastic Compute Cloud (EC2),以及创建任何 Unified Access Gateway 实例之前准备 EC2 环境的步骤。

建议的操作系统和 PowerShell 版本

操作系统建议的操作系统版本PowerShell 版本
Windows10 和 115 和 7
Ubuntu20.04、22.04、24.047

必备条件

  • 具有足够特权部署 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 准备客户机
  2. 在客户机上设置 AWS 配置文件和区域
  3. 使用 PowerShell 上载 Unified Access Gateway 映像
  4. 为 AWS 准备 INI 文件
  5. 将 Unified Access Gateway 部署到 Amazon AWS EC2

步骤 1。为 Powershell 准备客户机

在您的计算机上安装 AWSPowerShell。请参阅在 Windows 上安装适用于 PowerShell 的 AWS Tools

  1. 使用管理权限打开 Powershell 命令窗口。
  2. 运行以下命令。
    WindowsUbuntu
    Install-Module -Name AWSPowerShell -Force 
    
    Install-Package 7Zip4PowerShell
    Install-Module -Name AWS.Tools.Common 
    
    Install-AWSToolsModule
    AWS.Tools.EC2,AWS.Tools.S3 -CleanUp

步骤 2。在客户机上设置 AWS 配置文件和区域

  1. 在 AWS 控制台中,创建访问密钥,并获取访问密钥 ID 和私有访问密钥。请在配置文件中设置这些内容。
  2. 运行以下命令以存储凭据。
    • 将凭据存储在配置文件中
    • Set-AWSCredential -AccessKey <accesskey> -SecretKey <secretkey> -StoreAs <profile_name>
    • 当凭据具有 sessionToken 时
    • Set-AWSCredential -AccessKey <accesskey> -SecretKey <secretkey> -sessionToken <sessionToken> -StoreAs <profile_name>
  3. 运行以下命令以初始化配置文件。
  4. Set-AWSCredential -ProfileName <profile_name>
  5. 设置 AWS 区域。
    注意:您可以使用 Get-AWSRegion 命令确定要使用的区域。
    Set-DefaultAWSRegion -Region us-west

  6. 在 Amazon S3 中创建一个存储桶,以存储 Unified Access Gateway .vmdk 映像(如果尚不存在)。有关更多信息,请参阅创建存储桶
    例如,请考虑创建名为“uag-images”的存储桶。
    $bucket="uag-images"
    New-S3Bucket -BucketName $bucket -Region us-east-2
  7. 在 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

  8. (可选)在 EC2 中准备网络环境。
    注意:可以从 EC2 管理控制台或使用 PowerShell 执行这些步骤。只需完成这些步骤一次,即可为 Unified Access Gateway 部署准备 EC2 环境。为此,至少需要一个子网。对于多网卡 Unified Access Gateway 部署,每个网卡可以位于同一子网中,也可以位于不同的子网中。

  9. (可选)创建子网。有关更多信息,请参阅创建子网

  10. (可选)为每种类型的网卡创建安全组。 安全组包含一组用于限制 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 地址,以便不会向所有人开放。 有关更多信息,请参阅创建安全组

    使用 AWS 管理控制台在网络和安全设置中创建安全组,以使用防火墙规则限制 TCP 和 UDP 端口访问。

  11. 如果可以直接从 Internet 访问 Unified Access Gateway 设备,则每个需要访问权限的网卡都必须具有关联的公共 IP 地址(称为弹性 IP)。有关详细信息,请参阅分配弹性 IP 地址

  12. 弹性 IP

  13. 对于每个网卡,确定子网 ID、安全组 ID 和公共 IP 分配 ID。
    如果没有为任何网卡指定安全组 ID,将使用默认安全组。
    如果未指定公共 IP ID,则该网卡将没有公共 IP 地址,因此无法直接从 Internet 进行访问。如果在一组 Unified Access Gateway 设备前面使用负载均衡器,可能会出现这种情况。

    子网

步骤 3 使用 PowerShell 上载 Unified Access Gateway 映像

Customer Connect 门户下载 Unified Access Gateway .ova 映像文件。

选项 1:使用内置脚本自动创建新的 AMI。转至步骤 4 以继续。

选项 2:使用 .vmdk 映像手动创建新的 AMI。

  1. .ova 文件提取 .vmdk 映像。

    WindowsUbuntu
    expand-7zip ova-filename target-location
    例如,euc-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-filename
    例如,
    tar -xvf euc-unified-access-gateway-x.y.0.0-12345678_OVF10.ova 
  2. 将 .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
    
  3. 导入 EC2 快照。

    $params = @{
    "DiskContainer_Format"="VMDK"
    "DiskContainer_S3Bucket"=$bucket
    "DiskContainer_S3Key"=$vmdkImage
    "Region"=$region
    }
    $impId=Import-EC2Snapshot @params
    
  4. 要跟踪导入,请定期运行以下命令以获取进度状态。
    注意:导入过程需要几分钟时间。

    (Get-EC2ImportSnapshotTask -ImportTaskId `
    $impId.ImportTaskId).SnapshotTaskDetail    
    
  5. 完成后,以下命令必须显示 SnapshotId。

    (Get-EC2ImportSnapshotTask -ImportTaskId `
    $impId.ImportTaskId).SnapshotTaskDetail.SnapshotId
    
  6. 将映像注册为 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 映像中看到导入的映像。


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] 节设置

示例描述
s3Buckets3Bucket=uag-bucket输入用于存储 Unified Access Gateway .vmdk 映像的 S3 存储桶的名称。
amiIdamiId= Unified Access Gateway 的 Amazon 计算机映像 (AMI)。
  • 当你已手动创建 AMI 或 AMI 已存在时:
    输入 AMI(如果已创建)。
  • 当你要使用脚本创建新的 AMI 时:
    将此设置留空。
    注意:在创建新的 AMI 之前,该脚本会检查与 Unified Access Gateway 映像对应的 AMI 是否已存在。
    确保为 s3BucketsourcevmdkExtractionDir 设置提供的值正确无误。
credentialProfileNamecredentialProfileName=MyUAGProfile 包含访问密钥 ID 和私有访问密钥的凭据配置文件的名称。必须先进行此设置。如果未进行此设置,部署将尝试使用默认凭据配置文件。
instanceTypeinstanceType=c4.largeAWS EC2 实例类型。默认值为 c4.large。
regionregion=us-east-2AWS EC2 区域名称。
注意:这是必需设置。
ipv6AddressCount0 ipv6AddressCount1 ipv6AddressCount2ipv6AddressCount0=1EC2 DHCP 用于 eth0、eth1 或 eth2 的 IPv6 地址计数。 这是可选字段。如果任何网卡需要 IPv6,可以将此字段的值设置为 1。 如果未指定任何值,则每个网卡的默认值为 0
privateIPAddress0 privateIPAddress1 privateIPAddress2privateIPAddress1= 172.31.7.222 EC2 DHCP 用于 eth0eth1eth2 的可选固定 IP 地址。通常,此设置不是必需设置,但可用于设置静态专用 IP 地址,而不是动态 IP 地址。
publicIPId0 publicIPId1 publicIPId2 publicIPId0=eipalloc-027afa45f34984c87 eth0eth1eth2 关联的 AWS EC2 弹性公共 IP 地址 ID。此设置对于每个网卡都是可选的。
securityGroupId0 securityGroupId1 securityGroupId2securityGroupId0=sg-00877c33656609407eth0eth1eth2 关联的 AWS EC2 安全组 ID。同一安全组可供多个 Unified Access Gateway 实例使用。
注意:此设置是可选的。 如果未指定此设置,将使用默认 EC2 安全组。
subnetId0 subnetId1 subnetId2subnetId1=subnet-5c980935eth0eth1eth2 关联的 AWS EC2 子网 ID。
  • 对于单个网卡部署,subnetId0 是必需设置。
  • 对于双网卡部署,subnetId0subnetId1 是必需设置。
  • 对于三网卡部署,subnetId0subnetId1subnetId2 是必需设置。

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

  1. Omnissa Customer Connect 中,转到 Unified Access Gateway (UAG) PowerShell 脚本文件,然后单击立即下载
    zip 文件 uagdeploy-xx.xx.x.x-xxxxxxxx 将下载到您的本地计算机上。

  2. 从该 zip 文件中提取文件。确保以下 PowerShell 脚本在您的计算机上可用。
    uagdeployec2.ps1uagdeploy.psm1

  3. 打开 PowerShell 窗口并运行以下命令。
    uagdeployec2.ps1 <file_name>.ini

    其中,file_name 是 INI 文件的名称。

4. 输入管理员密码。
现在,您可以使用公共 IP 访问 UAG 管理 UI。
“实例”设置中的“描述”选项卡显示了 UAG 实例的配置。

  1. 要验证部署是否已完成,请使用 SSH 登录到 UAG,然后运行以下命令:
    tail /opt/omnissa/gateway/logs/admin.log

  2. 使用 https://uag-ipFQDN:9443/admin 登录到管理 UI,然后根据您的要求配置设置。

后续操作

  1. 停止 Unified Access Gateway 实例。
  2. 使用以下命令清除当前 Unified Access Gateway 实例中的 userData 值:
edit-EC2InstanceAttribute -InstanceId i-12345678 -Attribute userData -Value "blank"

此页面对您有帮助吗?

对本主题提供反馈

本主题对您有帮助吗?

请勿填写任何个人信息或机密信息。

正在生成链接…