Skip to main content

2026 年 7 月 28 日

通过 PowerShell 部署到 Google Cloud Platform

可使用 PowerShell 命令来将 Unified Access Gateway 2103 或更高版本部署到 Google Cloud Platform 中的 Compute Engine。

步骤

  1. 准备客户机
  2. 准备 Google Cloud Platform 环境
  3. 将 Unified Access Gateway 映像上载到 Google Cloud Platform
  4. 准备 .ini 文件以部署到 Google Cloud Platform
  5. 部署到 Compute Engine

步骤 1:为 PowerShell 部署准备客户机

在客户机上安装 Google Cloud 实用程序。

  1. 安装 gsutil。有关在 Windows 和 Ubuntu 上安装 gsutil 工具的说明,请参阅 Google Cloud 文档中的作为 Google Cloud CLI 的一部分安装 gsutil

  2. 对于 Windows 计算机,请运行以下具有管理权限的 PowerShell 命令。

    Install-Package 7Zip4PowerShell
    

运行 PowerShell 部署脚本的建议操作系统

下表列出了可从中执行基于 PowerShell 的 Unified Access Gateway 至 Google Cloud Platform 部署的操作系统。此操作系统并非指 Unified Access Gateway 设备本身的操作系统。

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

步骤 2:准备 Google Cloud Platform 环境

使用 Google Cloud 项目。必须为该项目配置 VPC 网络、相应的子网网络和防火墙规则。有关更多信息,请参阅 Google Cloud 文档

必备条件

  • 确保您了解 Google Cloud Platform 的概念。
  • 确保您具有在 Google Cloud 项目中创建或修改资源(如映像、VPC 网络、子网、防火墙规则等)所需的权限。
  • 必须启用 Compute Engine API。

步骤

  1. 使用 Google Cloud 项目。

    选项操作
    新建项目
    1. 在 Google Cloud Console 中,导航到项目选择器页面。
    2. 创建一个 Google Cloud 项目。
    现有项目如果已有项目可用且处于活动状态,则可以使用该现有项目。
  2. 为每个网卡创建一个 Virtual Private Cloud (VPC) 网络。

    Unified Access Gateway 上的每个网卡都使用唯一的 VPC 网络和该网络内的子网。

    如果选择不创建 VPC 网络,则只能部署单个网卡 Unified Access Gateway。当 Unified Access Gateway 设备部署在 Compute Engine 中时,它将使用 Google Cloud Platform 中提供的默认 VPC 网络。

    例如,在下图中,在 Google Cloud Console 中创建了两个 VPC 网络:uag-front-vpcuag-back-vpc。这两个 VPC 网络分别将 uag-front-networkuag-back-network 作为子网。此时可以部署一个双网卡 Unified Access Gateway 设备,以便将这两个子网用于面向 Internet 的前端,并将单独的子网网络用于后端连接。

    在 Google Cloud Console 中创建两个 VPC 网络:uag-back-vpc 和 uag-front-vpc。这两个 VPC 网络分别将 uag-back-network 和 uag-front-network 作为子网。

    **注意:**您还可以为 Unified Access Gateway 配置共享 VPC 网络。在这种情况下,在服务项目上部署的 Unified Access Gateway 实例将连接到在主机项目上创建和管理的共享 VPC 网络。可以将 Unified Access Gateway 上的每个网络接口 (NIC) 单独配置为使用共享 VPC 网络或本地 VPC 网络。有关更多信息,请参阅 Google Cloud 文档上的配置共享 VPC

  3. 记下创建的子网名称。

    使用 PowerShell 部署 Unified Access Gateway 时,将在 .ini 文件中使用 VPC 网络中的子网名称。

  4. 要允许 TCP 和 UDP 端口访问可通过 Internet 访问的 VPC 中的 Unified Access Gateway 设备,请创建所需数量的防火墙条目。

    **重要信息:**必须在防火墙上仔细限制 TCP 端口 22 上从 Internet 对 Unified Access Gateway 的 SSH 远程访问。如果需要 SSH 访问,防火墙规则必须仅允许从特定的源 IP 地址或从云中可以控制访问的 jump box 虚拟机进行此访问。

    例如,在以下 Google Cloud Console 映像中,在面向 Internet 的 VPC 网络 uag-front-vpc 中创建了一个名为 uag-horizon-protocols 的防火墙规则。此防火墙规则适用于连接到 uag-front-vpc 网络的所有实例,并允许指定端口上来自公共 Internet 的入站 TCP 和 UDP 流量。

    Google Cloud Console 显示了 Horizon Edge Service 的一个防火墙条目,其中配置了 TCP 和 UDP 端口。

步骤 3: 将 Unified Access Gateway 映像上载到 Google Cloud Platform

要将 Unified Access Gateway 实例部署到 Compute Engine,必须将 Unified Access Gateway 设备磁盘映像上载到 Google Cloud Platform。

  1. Omnissa Customer Connect 中,转到适用于 vSphere、AWS 和 Google Cloud 的 Unified Access Gateway (UAG) 文件,然后单击立即下载
    zip 文件 euc-unified-access-gateway-x.x.x.xxxxxxxxx.ova 将下载到您的本地计算机上。

  2. 打开 PowerShell 命令窗口并运行以下命令,从之前下载的 .ova 文件中提取 .vmdk 文件。

    • ova-filename 是从 Customer Connect 下载的 .ova 映像文件。
    • target-location 是将 .vmdk 文件提取到的位置。
    WindowsUbuntu
    expand-7zip ova-filename target-location
    例如,euc-unified-access-gateway-22.12.0.0-42741890_OVF10.ova 是下载的文件,其中 22-12 是版本号,42741890 是内部版本号。 要将 .vmdk 文件提取到 C:\temp,请运行以下命令:
    expand-7zip C:\temp\euc-unified-access-gateway-22.12.0.0-42741890_OVF10.ova C:\temp\
    tar -xvf ova-filename
    例如,
    tar -xvf euc-unified-access-gateway-22.12.0.0-42741890_OVF10.ova 
  3. 设置以下变量。

    • $gcImageFile 是在步骤 2 中提取的 .vmdk 文件的文件名。
    • $gcImageFolder 是 .vmdk 文件的文件夹路径。 例如:
    
    $gcImageFolder="C:\temp"
    $gcImageFile="euc-unified-access-gateway-22.12.0.0-42741890-system.vmdk"
    $gcBucket="uag-appliance-images"
    $gcImageName=$gcImageFile.Replace("-system.vmdk","").Replace(".", "-")
    gcloud auth login
    gcloud config set project "my-project"
    
    
  4. 创建一个 Google Cloud 存储桶。

    **注意:**您还可以使用托管在其他 Google Cloud 项目上的计算映像来部署 Unified Access Gateway。在这种情况下,请在部署 Unified Access Gateway 期间指定计算映像名称 ($gcImageName) 和托管项目 ID。

    运行以下命令以在同一项目中创建存储桶。

    gsutil mb -l us-east1 gs://$gcBucket
    

    运行以下命令以在不同项目中创建存储桶。

    gsutil mb -l us-east1 gs://$gcBucket -p my-image-hosting-project
    
  5. 使用以下命令将 .vmdk 映像上载到 Google Cloud 存储桶:

    gsutil cp $gcImageFolder\$gcImageFile gs://$gcBucket
    
  6. 在 Compute Engine 中从上载的 .vmdk 创建设备映像。

    运行以下命令以在同一项目中导入映像。

    gcloud compute images import $gcImageName --source-file gs://$gcBucket/$gcImageFile --data-disk
    

    运行以下命令以在不同项目中导入映像。

    gcloud compute images import $gcImageName --source-file gs://$gcBucket/$gcImageFile --data-disk --project my-image-hosting-project
    

    **注意:**导入计算映像时,可以指定要用于通过导入工具创建的临时虚拟机的子网。按以下示例所示使用标记 --subnet

    gcloud compute images import $gcImageName --source-file gs://$gcBucket/$gcImageFile --data-disk --subnet default
    

    有关这些命令的更多信息,请参阅 Google Cloud SDK 文档。

    就上述步骤中提到的示例而言,在 Compute Engine 中创建的设备映像是 euc-unified-access-gateway-22-12-0-0-42741890,其中,22-12 是版本号,42741890 是内部版本号。

步骤 4:准备 .ini 文件以部署到 Google Cloud Platform

适用于 Unified Access Gateway 的 Compute Engine PowerShell 部署脚本从 .ini 配置文件读取所有配置设置。本节介绍了 .ini 文件格式,并显示了可用于部署的设置示例。

.ini 文件的大部分内容与所有其他 Hypervisor 部署支持的 Unified Access Gateway 标准 .ini 设置相同。有关 .ini 文件的更多信息,请参阅使用 PowerShell 部署 Unified Access Gateway 设备部分。

  1. 在 [General] 节中配置所需的设置。请参阅 PowerShell 部署参数

    **注意:**对于 Google Cloud Platform 部署,不使用 [General] 部分中的以下设置:

    • diskMode
    • ds
    • folder
    • netInternet
    • netManagementNetwork
    • netmask0netmask1netmask2
    • netBackendNetwork
    • source
    • target
    • ip0defaultGatewaynetmask0ipmode0
    • v6ip0v6ipprefix0v6DefaultGateway
  2. .ini 文件中,添加新组 [GoogleCloud],以及特定于 Google Cloud Platform 的必要设置。

下表列出了 Google Cloud Platform 部署所需的设置(值名称)。

User/Group(用户/组)值名称示例描述必需/可选
[GoogleCloud]projectIdprojectId=my-project用于创建新 Unified Access Gateway 实例的 Google Cloud Platform 项目 ID。 如果未提供项目 ID,则使用 Cloud SDK 的活动配置中的项目。可选
imageNameimageName=euc-unified-access-gateway-22-12-0-0-42741890Compute Engine 中必须从中创建新实例的已导入设备映像的名称。强制
 imageProjectIdimageProjectId= (image-host-project)托管计算映像 imageName 的项目。如果未指定,则使用默认 projectId 查找计算映像。可选
machineTypemachineType=e2-standard-4表示 Compute Engine 计算机类型。 machineType 的默认值为 e2-standard-4 注意:确保指定的 machineType 适合所需的 Unified Access Gateway 网卡数量。 例如:e2-standard-2 支持单个网卡或双网卡部署,但不支持三网卡部署。有关更多信息,请参阅 Google Cloud 文档上的“最大网络接口数”。可选
zonezone=us-central1-a在其中创建新 Unified Access Gateway 实例的 Compute Engine 区域。 如果未提供 zone 值,将使用 Cloud SDK 的活动配置中的区域。可选
  subnet0 subnet1 subnet2subnet0=custom-subnet必须在其中创建 Unified Access Gateway 的 eth0、eth1 和 eth2 网卡的子网。 以下是 deploymentOption 的值以及使用的相应子网:
  • 如果将 deploymentOption 设置为 onenic,则使用 subnet0。
  • 如果将 deploymentOption 设置为 twonic,则使用 subnet0 和 subnet1。
  • 如果将 deploymentOption 设置为 threenic,则使用 subnet0、subnet1 和 subnet2。
如果未提供子网值,PowerShell 脚本将使用子网的默认值。在双网卡或三网卡部署中,只能有一个子网使用默认值。
在双网卡或三网卡部署中,只能有一个子网值是可选的。
 vpcHostProjectIdvpcHostProjectId= (shared-vpc-host-project)从共享 VPC 配置任何 Unified Access Gateway 网卡时充当主机项目的项目。要在共享 VPC 上配置给定子网,请将 sharedVpcForSubnet<n> 标记设置为 true,其中 n 是网卡编号。可选
  sharedVpcForSubnet0 sharedVpcForSubnet1 sharedVpcForSubnet2
sharedVpcForSubnet0=true
sharedVpcForSubnet1=false
sharedVpcForSubnet2=false
如果指定了 vpcHostProjectId,则此标记将指示是否在共享 VPC 中创建了给定子网。如果未指定 vpcHostProjectId,则会忽略此字段。默认值为 false。可选
privateIPAddress0 privateIPAddress1 privateIPAddress2privateIPAddress0=10.30.11.213用于网卡的内部 IP 地址。 此设置可用于将 Unified Access Gateway 的 eth0、eth1 和 eth2 连接到 Google Cloud 的 VPC 网络中的内部静态 IP 地址。 如果未提供 privateIPAddress 的值,则 Compute Engine 会将相应的网卡连接到内部动态 IP 地址。 例如:请考虑双网卡部署
  • eth0 连接到内部静态 IP 地址。
  • eth1 接收动态连接的内部 IP 地址。
在删除实例之前,这两个 IP 地址将保持连接到 Unified Access Gateway 实例。
可选
publicIPAddress0 publicIPAddress1 publicIPAddress2 publicIPAddress0=eipalloc-027afa45f34984c87 publicIPAddress1=no-address网卡的外部 IP 地址 此设置可用于将 Unified Access Gateway 的 eth0、eth1 和 eth2 连接到 Google Cloud 的 VPC 网络中的预留外部 IP 地址。 如果未提供 publicIPAddress 的值,则 Compute Engine 会将相应的网卡连接到外部动态 IP 地址。 要防止网卡连接到外部 IP 地址,请使用 no-address 作为此值。 在此示例中,请考虑三网卡部署:
  • eth0 连接到外部静态 IP 地址。
    外部静态 IP 地址将保持连接到此网卡,直到删除实例(或移除预留)。</li>
    
  • eth1 未附加到任何外部 IP 地址。
  • eth2 接收动态附加的外部 IP 地址。
    当实例停止或终止时,将释放外部 IP 地址。</li>
    
可选
labelslabels=label0=value0,label1=value1与 Unified Access Gateway 实例关联的标签。 默认情况下,通过 PowerShell 脚本将 name=$uagName 标签与 Unified Access Gateway 实例相关联。可选
tagstags=tag0,tag1与 Unified Access Gateway 实例关联的标记。 默认情况下,通过 PowerShell 脚本将 https-server 标记与 Unified Access Gateway 实例相关联。可选
 serviceAccountserviceAccount=51841023978-compute@prod.gserviceaccount.com服务帐户是连接到 Unified Access Gateway 实例的身份。 服务帐户的访问令牌可以通过 Unified Access Gateway 实例元数据服务器进行访问,用于对该实例上的应用程序进行身份验证。此帐户可通过与所需服务帐户相对应的电子邮件地址来设置。 如果未提供服务帐户,Unified Access Gateway 实例将使用项目的默认服务帐户。可选

示例 1:用于将 Unified Access Gateway 部署到 Google Cloud Platform 的 INI 文件定义


[General]
name=uag1
deploymentOption=onenic
sshEnabled=true

[GoogleCloud]
projectId=my-project
imageName=euc-unified-access-gateway-22-12-0-0-42741890
zone=us-central1-a
subnet0=uag-front-network

[Horizon]
proxyDestinationUrl=https://myhorizon.example.com

示例 2:用于将 Unified Access Gateway 部署到 Google Cloud Platform 的 INI 文件定义


[General]
name=uag2
deploymentOption=twonic
sshEnabled=true
routes1=10.20.0.0/16 10.2.0.1

[GoogleCloud]
projectId=my-project
imageName=euc-unified-access-gateway-22-12-0-0-42741890
imageProjectId=my-image-hosting-project
zone=us-central1-a
vpcHostProjectId=my-sharedvpc-host-project
subnet0=uag-front-network
sharedVpcForSubnet0=true
subnet1=uag-back-network
sharedVpcForSubnet1=false

[Horizon]
proxyDestinationUrl=https://myhorizon.example.com

步骤 5:部署到 Compute Engine

您可以使用 uagdeploygce.ps1 PowerShell 命令将 Unified Access Gateway 部署到 Compute Engine。此命令将从 .ini 文件中获取所有配置设置,并部署 Unified Access Gateway 实例。

如果 Compute Engine 中任何现有实例的名称与 .ini 文件的“General”节中指定的名称相同,则 PowerShell 脚本会在部署期间移除现有实例,并使用相同名称创建一个新 Unified Access Gateway 实例。这种替换有助于升级 Unified Access Gateway 设备或使用更新的设置重新部署设备。

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

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

  3. 启动 PowerShell 命令窗口,并将目录更改为包含已下载脚本的文件夹。

  4. 要将 Unified Access Gateway 部署到 Compute Engine,请执行以下操作:

    1. 如果要升级到更高版本的 Unified Access Gateway,请编辑 .ini 文件,以将 imageName 设置更新为在上述任务之一中上载到 Compute Engine 的新映像名称。

      .ini 文件中的所有其他配置参数都必须保持不变。

    2. 根据您选择的是交互式模式还是非交互模式,运行以下命令:

      模式命令
      交互式
      .\uagdeploygce.ps1 <ini-filename>.ini
      <ini-filename> 是先前任务中准备的 .ini 文件的名称。 例如:.\uagdeploygce.ps1 uag1.ini uag1.ini 是先前任务中使用的文件名。
      非交互式.\uagdeploygce.ps1 <ini-filename> <root-pwd> <admin-pwd> <ceip-yes-no>

      .\uagdeploygce.ps1 <ini-filename> <secret> <admin-pwd> yes
      • <ini-filename> 是先前任务中准备的 .ini 文件的名称。
      • 如果在命令行上指定了密码(如命令中所示),请在部署 Unified Access Gateway 后使用 Clear-History PowerShell 命令。
      • 如果密码较弱,部署将失败。密码必须包含以下字符之一:! @ # $ % * ( )。

      如果再次运行 uagdeploygce.ps1 命令,则会删除先前的 Unified Access Gateway 实例和关联的资源,并替换为具有相同名称的新实例。新的 .ini 文件必须具有所有必需的配置参数,以便 Unified Access Gateway 设备在首次引导时即可投入生产。

有关 root 用户密码和管理员密码要求的更多信息,请参阅密码要求

后续操作

将 Unified Access Gateway 部署到 Compute Engine 并应用所有设置后,必须移除用于在 Google Cloud 中应用 Unified Access Gateway 设备配置设置的元数据。要移除元数据,请使用以下示例中所示的命令:


$uagName=uag1
$zone=us-central1-a
$projectId=my-project
gcloud compute instances remove-metadata $uagName --zone=$zone --project $projectId --keys "user-data"

此页面对您有帮助吗?

对本主题提供反馈

本主题对您有帮助吗?

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

正在生成链接…