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 上安裝 AWS Tools for PowerShell

  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 主控台中,建立存取金鑰,並取得存取金鑰識別碼和密碼存取金鑰。在設定檔中設定這些資訊。
  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 來執行這些步驟。這些步驟只需要執行一次,以準備 EC2 環境來進行 Unified Access Gateway 部署。為此,需要至少一個子網路。對於多 NIC 的 Unified Access Gateway 部署,每個 NIC 可以位於相同子網路中,也可以位於不同的子網路中。

  9. (選用) 建立子網路。如需詳細資訊,請參閱建立子網路

  10. (選用) 為每個類型的 NIC 建立安全群組。 安全群組包含一組防火牆規則,可限制 TCP 和 UDP 連接埠存取。一個安全群組可以在多個 Unified Access Gateway 應用裝置之間共用。例如,您可以為 eth0 建立一個名為 UAG-Internet 的安全群組,並在建立 Unified Access Gateway 應用裝置時自動將其與第一個 NIC 相關聯。
    若要使用 Horizon,第一個 (UAG-Internet) 可以允許任何用戶端中的 TCP 連接埠 80、443、8443、4172 和 UDP 連接埠 443、8443、4172。如果您想要允許透過 ssh 來存取 Unified Access Gateway,則必須在每個 .ini 檔案的 [一般] 區段中指定 sshEnabled=true。SSH 通常僅應用於測試,不能用於生產部署。您還應確保在安全群組中限制只有單一來源 IP 位址能存取 TCP 連接埠 22 上的 ssh,而不全面開放。 如需詳細資訊,請參閱建立安全群組

    使用 AWS 管理主控台,在網路和安全性設定中建立安全群組,以使用防火牆規則來限制 TCP 和 UDP 連接埠的存取。

  11. 如果可以直接從網際網路存取 Unified Access Gateway 應用裝置,則每個需要存取權的 NIC 都必須具有相關聯的公用 IP 位址 (稱為彈性 IP)。如需詳細資訊,請參閱配置彈性 IP 位址

  12. 彈性 IP

  13. 對於每個 NIC,決定子網路識別碼、安全群組識別碼和公用 IP 配置識別碼。
    如果沒有為任何 NIC 指定安全群組識別碼,將使用預設安全群組。
    如果未指定公用 IP 識別碼,則該 NIC 將沒有公用 IP 位址,因此無法直接從網際網路來存取。如果在一組 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 檔案

[一般] 區段設定

在 [一般] 區段中設定所需的設定。請參閱 PowerShell 部署參數

[一般] 區段中用於執行指令碼的其他設定

設定說明
source 輸入來源 ova 檔案的位置。
範例: C:\Users\User1\Downloads\ova\euc-unified-access-gateway-25.03.0.0-13143769531_OVF10.ova
vmdkExtractionDir輸入已解壓縮的 vmdk 檔案位置。如果未指定路徑,則 vmdk 檔案將下載至 ova 檔案所在的位置。

[一般] 區段中未使用的設定

對於 AWS EC2 部署,不使用 [一般] 區段中的下列設定。

設定說明
diskMode 未使用
ds
folder
netInternet
netManagementNetwork
netmask0、netmask1、netmask2
netBackendNetwork
target
所有 IPv4 和 IPV6 設定

[AmazonEC2] 區段設定

範例說明
s3Buckets3Bucket=uag-bucket輸入要用來儲存 Unified Access Gateway .vmdk 映像的 S3 值區名稱。
amiIdamiId= Unified Accedd Gateway 的 Amazon Machine Image (AMI)。
  • 如果您已手動建立 AMI 或該 AMI 已存在:
    請輸入您已建立的 AMI。
  • 如果您希望使用指令碼建立新的 AMI:
    請將此設定留空。
    附註:在建立新 AMI 之前,指令碼會先檢查是否已有對應 Unified Access Gateway 映像的 AMI 存在。
    請確保 s3BucketsourcevmdkExtractionDir 設定值正確無誤。
credentialProfileNamecredentialProfileName=MyUAGProfile 含有存取金鑰識別碼和密碼存取金鑰的認證設定檔的名稱。必須先設定此項。如果未設定此項,部署將嘗試使用預設認證設定檔。
instanceTypeinstanceType=c4.largeAWS EC2 執行個體類型。預設值為 c4.large。
regionregion=us-east-2AWS EC2 區域名稱。
附註:這是必要設定。
ipv6AddressCount0 ipv6AddressCount1 ipv6AddressCount2ipv6AddressCount0=1EC2 DHCP 用於 eth0、eth1 或 eth2 的 IPv6 位址計數。 此為選用欄位。若有任何 NIC 需要 IPv6,可以將此欄位的值設定為 1。 如果未指定任何值,則每個 NIC 的預設值為 0
privateIPAddress0 privateIPAddress1 privateIPAddress2privateIPAddress1= 172.31.7.222 EC2 DHCP 為 eth0eth1eth2 使用的選用固定 IP 位址。一般而言,此項雖非必要,但可用來設定靜態私人 IP 位址,而不是動態 IP 位址。
publicIPId0 publicIPId1 publicIPId2 publicIPId0=eipalloc-027afa45f34984c87 eth0eth1eth2 相關聯的 AWS EC2 彈性公用 IP 位址識別碼。此設定對於每個 NIC 是選用的。
securityGroupId0 securityGroupId1 securityGroupId2securityGroupId0=sg-00877c33656609407eth0eth1eth2 相關聯的 AWS EC2 安全群組識別碼。同一個安全群組可以由多個 Unified Access Gateway 執行個體使用。
附註:此設定為選用。 如果未指定此設定,將使用預設 EC2 安全群組。
subnetId0 subnetId1 subnetId2subnetId1=subnet-5c980935eth0eth1eth2 相關聯的 AWS EC2 子網路識別碼。
  • 若為單一 NIC,subnetId0 是必要的。
  • 若為兩個 NIC,subnetId0subnetId1 是必要的。
  • 若為三個 NIC,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 指令碼檔案,然後按一下立即下載
    系統會將壓縮檔 uagdeploy-xx.xx.x.x-xxxxxxxx 下載至您的本機電腦。

  2. 從壓縮檔中解壓縮這些檔案。確認下列 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"

此頁面對您有幫助嗎?

針對本主題提供意見回饋

本主題對您有幫助嗎?

請勿填寫任何個人或機密資訊。

正在產生連結…