Citrix DaaS
感谢您提供反馈

这篇文章已经过机器翻译.放弃

使用 Image Portability Service 在资源位置之间迁移工作负载

Image Portability Service 简化了跨平台的映像管理。 Citrix Virtual Apps and Desktops REST API 可用于自动管理 Citrix Virtual Apps and Desktops 站点中的资源。

当您使用 Citrix Cloud 开始在两个资源位置之间迁移映像时,映像可移植性工作流程开始。 导出映像后,Image Portability Service 可帮助您传输和准备映像,以便在目标虚拟机管理程序或公有云上运行。 最后,Citrix Provisioning 或 Machine Creation Services 在目标环境中置备映像。

组件

Image Portability Service 组件包括:

  • Citrix Cloud 服务
  • Citrix 凭据钱包
  • Citrix 连接器设备
  • 合成引擎 VM
  • PowerShell 示例脚本

Citrix Cloud 服务

Citrix Cloud 服务 API 是一种与图像可移植性服务交互的 REST API 服务。 使用 REST API 服务,您可以创建和监控 Image Portability 作业。 例如,您进行 API 调用以启动映像可移植性作业(例如导出磁盘),然后进行调用以获取作业的状态。

Citrix 凭据钱包

Citrix Credentials Wallet 服务安全地管理系统凭据,允许 Image Portability Service 与您的资产进行交互。 例如,将磁盘从 vSphere 导出到 SMB 共享时,映像可移植性服务需要凭据才能打开与 SMB 共享的连接以写入磁盘。 如果凭证存储在 Credential Wallet 中,则 Image Portability Service 可以检索和使用这些凭证。

此服务使您能够完全管理您的凭证。 云服务 API 充当访问点,使您能够创建、更新和删除凭据。

合成引擎

合成引擎是 Image Portability Service 的主力。 合成引擎 (CE) 是在映像可移植性导出或准备作业开始时创建的单个 VM。 这些 VM 是在执行作业的同一环境中创建的。 例如,从 vSphere 导出磁盘时,将在 vSphere 服务器上创建 CE。 同样,在 Azure、AWS 或 Google Cloud 中运行准备作业时,将分别在 Azure、AWS 或 Google Cloud 中创建 CE。 CE 将磁盘挂载到自身,然后对磁盘执行必要的操作。 完成准备或导出作业后,将删除 CE VM 及其所有组件。

连接器设备

连接器设备运行提供商软件来管理 IPS 资源,在您的环境中运行(本地以及 Azure、AWS 或 Google Cloud 订阅),并充当单个作业的控制器。 它从云服务接收作业指令,并创建和管理合成引擎 VM。 连接器设备 VM 充当云服务和您的环境之间的单一安全通信点。 在每个资源位置(本地、Azure、AWS 或 Google Cloud)部署一个或多个连接器设备。 为了安全起见,每个资源位置都部署了一个连接器设备。 通过将连接器设备和合成引擎放在一起,部署的安全状况大大提高,因为所有组件和通信都保留在您的资源位置内。

PowerShell 模块

我们提供了一组 PowerShell 模块,可在脚本中使用,作为开发您自己的自定义自动化的起点。 提供的模块按原样受支持,但您可以根据需要修改它们以进行部署。

PowerShell 自动化使用提供的配置参数编写对 Citrix Cloud API 服务的 REST 调用以启动作业,然后在作业进行时为您提供定期更新。

如果您想开发自己的自动化解决方案,可以直接使用首选编程语言调用云服务。 有关配置和使用 Image Portability Service 的详细信息,请参阅 API 门户 REST 端点和 PowerShell 模块.

工作流

Image Portability Service 使用多阶段工作流从本地资源位置为您的公有云订阅准备主目录映像。 该服务从本地虚拟机管理程序平台导出映像,然后将其上传到您的公有云订阅(我们提供的 PowerShell 上传实用程序可以帮助实现此目的)。 然后,Image Portability 会准备映像以与您的公有云平台兼容。 最后,映像已发布,并准备好作为新的计算机目录部署到您的云资源位置中。

图像可移植性工作流程

这些高级工作流基于映像的源和目标 Provisioning 配置(Machine Creation 或 Citrix Provisioning)。 所选工作流确定需要哪些图像可移植性作业步骤。

请参阅下表,了解每个受支持的 IPS 工作流程需要哪些作业。

工作流 (源到目标) 出口 上传 准备 发布
MCS 到 MCS Y Y Y N
PVS 到 MCS* N Y Y N
PVS 到 PVS 不适用 Y Y Y
MCS 到 PVS Y Y Y Y

*假设您将原始映像作为 Citrix Provisioning 虚拟磁盘,并且不需要直接从源平台虚拟机管理程序中导出它。

要求

要开始使用 Image Portability,您必须满足以下要求。

Citrix Machine Catalog 映像

IPS 要求使用具有以下测试配置之一的映像:

  • Windows Server 2016、2019 和 2022H2

  • Windows 10 或 11

  • 使用 Machine Creation Services 或 Citrix Provisioning 进行配置

  • Citrix 虚拟交付代理:
    • 1912 和 2203 LTSR 的最近两次累积更新
    • 最近的两个当前版本
  • 在 Azure 中启用了用于控制台访问的远程桌面服务

映像可移植性服务支持以下虚拟机管理程序和云平台:

源平台:

  • VMware vSphere 7.0 和 8.0

  • XenServer 8/Citrix 虚拟机管理程序 8.2

  • Nutanix AHV(仅限 Prism Element)

  • Microsoft Azure

  • Google Cloud 平台

目标平台:

  • VMware vSphere 8.0

  • XenServer 8/Citrix 虚拟机管理程序 8.2

  • Nutanix AHV(仅限 Prism Element)

  • Microsoft Azure

  • AWS

  • Google Cloud 平台

Citrix 连接器设备

您需要在计划使用 Image Portability 的每个资源位置安装和配置 Citrix Connector 设备。 例如,如果使用映像可移植性将映像从 vSphere 移动到 Azure、AWS 和 Google Cloud,则至少需要四个 Citrix Connector 设备:

部署 Connector 设备 以获取详细说明。

SMB (Windows) 文件共享

您需要一个 Windows SMB 文件共享 用于存储导出作业的输出。 合成引擎 VM 必须可访问共享,该 VM 将在您使用映像可移植性服务的资源位置中创建。 确保共享上的可用空间至少是映像文件系统配置大小的两倍。

用于运行 PowerShell 脚本的计算机

确保运行 PowerShell 脚本的计算机具有以下功能:

  • PowerShell 版本 5.1。

  • 与 SMB 文件共享的快速网络连接。 它可以是托管文件共享的同一台计算机。

  • 与您计划使用 Image Portability 功能的公有云平台的快速网络连接。 例如,Azure、AWS 或 Google Cloud。

    请参阅该部分 为 PowerShell 准备计算机 ,详细了解如何从 PowerShell 库下载和配置映像可移植性模块。

您的 Citrix Cloud 客户 ID

确保您拥有有效的 Citrix DaaS 订阅.

要继续,您需要访问 Citrix DaaS(以前称为 Citrix Virtual Apps and Desktops 服务)。 如果您没有访问权限,请联系您的 Citrix 代表。

请参阅 API 入门 有关创建和配置 API 客户端以与映像可移植性一起使用的说明的文档。

Azure 所需的权限和配置

要使映像可移植性服务对您的 Azure 资源执行操作,您需要向映像可移植性服务使用的 Azure 服务主体授予对某些 Azure 功能的权限。 有关详细列表,请参阅 Microsoft Azure 所需的权限.

您可以分配 贡献 role 添加到关联资源中的服务主体。 或者,要分配所需的最低权限,您可以创建具有所需权限的自定义角色,并将其分配给范围限定为相应资源的服务主体。

请参阅 Azure 文档 为 Azure 服务主体配置安全角色创建自定义角色.

Google Cloud 所需的权限和配置

要使映像便携性服务在您的 Google Cloud 项目中执行操作,您需要向映像便携性服务使用的 Google Cloud 服务主体授予某些功能的权限。

有关详细列表,请参阅 Google Cloud 所需的权限.

您可以使用以下角色分配这些权限:

  • Cloud Build 编辑器
  • 计算管理员
  • 存储管理员
  • 服务帐户用户

请参阅Google Cloud 文档了解有关配置服务账户权限的更多信息。

Amazon Web Services 所需的权限和配置

要使用 Amazon Web Services (AWS) 账户执行映像可移植性服务工作流,相应的 Identity and Access Management (IAM) 身份必须具有正确的权限。

有关详细列表,请参阅 AWS 所需的权限.

设置图像便携性服务

要设置图像便携性服务,您需要:

部署 Connector 设备

Image Portability 要求 Citrix Connector Appliances 创建 Image Portability 作业。 连接器设备有助于保护与本地和公有云环境的交互。 连接器设备与 Image Portability Service 通信,以报告作业状态和整体服务运行状况。

要在环境中部署和配置连接器设备,请按照 适用于云服务的连接器设备.

请注意所需的 硬件配置网口访问 在规划部署时为设备。

部署和注册设备后,将自动安装启用 Image Portability 所需的组件。

为 PowerShell 准备计算机

为了帮助您启动和运行 Image Portability,我们创建了 PowerShell 模块,您可以自定义并与该服务一起使用。

以下部分介绍如何准备计算机以运行 PowerShell 脚本。 这些脚本只是几个示例。 修改或增强它们以满足您的需求。

注意:

初始安装后,使用 Update-Module 以更新 PowerShell 模块。

PowerShell 要求

要使用 PowerShell 脚本,您需要满足以下条件:

  • 一台 Windows 计算机,用于运行驱动映像可移植性作业的 PowerShell 脚本。 机器:

    • 具有最新版本的 PowerShell。

    • 具有 10 Gbs 或更高的网络连接到本地 SMB 文件共享,并快速连接到您的公有云(例如 Azure、AWS 或 Google Cloud)。

    • 可以是托管文件共享的同一台计算机。

    • 是运行 Windows 10、Windows Server 2019 或 Windows Server 2022 的计算机,并安装了最新的 Microsoft 补丁。

    • 可以连接到 Microsoft PowerShell 库以下载所需的 PowerShell 库。

根据您的 Windows 版本,您可能需要禁用 TLS 1.0/1.1 支持。 指 Microsoft PowerShell 库 TLS 支持文档 了解更多信息。

默认情况下,PowerShell 不会通过代理服务器自动进行身份验证。 确保您已根据 Microsoft 和代理供应商最佳实践将 PowerShell 会话配置为使用代理服务器。

如果您在运行与 PowerShellGet 缺失或旧版本相关的 PowerShell 脚本时看到错误,则需要按如下方式安装最新版本:

Install-Module -Name PowerShellGet -Force -Scope CurrentUser -AllowClobber

安装库和模块

Image Portability Service 利用 Microsoft PowerShell 库中的库来驱动可移植性操作。

-priority

初始安装后,使用 Update-Module 以安装新版本。

  1. 运行以下 PowerShell 命令以下载最新的模块:

    Install-Module -Name "Citrix.Workloads.Portability","Citrix.Image.Uploader" -Scope CurrentUser
    • 要更改 PATH 环境变量,请执行以下操作:

      Y进入 接受。

    • 要安装 NuGet 提供程序,请执行以下操作:

      Y进入 接受。

    • 如果收到不受信任的仓库的通知:

      一个 (Yes to All) 和 进入 以继续。

  2. 通过运行命令确认已下载所有必要的模块:

    Get-InstalledModule -Name Citrix.*

    此命令返回类似于以下内容的输出:

    名称 存储 库 说明
    Citrix.Image.Uploader PSGallery 用于将 VHD(x) 上传到 Azure 存储帐户、AWS 或 GCP 和获取有关 VHD(x) 的信息的命令
    Citrix.Workloads.Portability PSGallery Citrix Image Portability Service 的映像作业的独立 cmdlet

将模块更新到最新版本

运行以下命令以将脚本更新到最新版本。

Update-Module -Name "Citrix.Workloads.Portability","Citrix.Image.Uploader" -Force

安装 Citrix Virtual Apps and Desktops 远程 PowerShell SDK

映像可移植性服务需要 Citrix Virtual Apps and Desktops 远程 PowerShell SDK 在 Citrix Cloud 中创建和管理可移植性作业。

下载并安装 远程 PowerShell SDK 在您的计算机上。

安装特定于平台的第三方组件

Image Portability Service PowerShell 模块不安装第三方依赖项。 因此,您可以将安装限制为仅针对您的平台。 如果您使用的是以下平台之一,请按照安装平台依赖项的相关说明进行操作:

VMware

如果要创建与 VMware 环境通信的映像可移植性作业,请运行以下命令以安装所需的 VMware PowerShell 模块。

Install-Module -Name VMWare.PowerCLI -Scope CurrentUser -AllowClobber -Force -SkipPublisherCheck
亚马逊云科技

如果您在 AWS 中创建 Image Portability 作业,请下载并安装 AWS 命令行界面,然后运行以下命令以安装所需的 AWS PowerShell 模块:

Install-Module -Name AWS.Tools.Installer Install-AWSToolsModule AWS.Tools.EC2,AWS.Tools.S3
Azure

如果要在 Azure 中创建映像可移植性作业,请下载并安装 Azure 命令行实用程序,然后运行以下命令以安装所需的 Azure PowerShell 模块:

Install-Module -Name Az.Accounts -Scope CurrentUser -AllowClobber -Force Install-Module -Name Az.Compute -Scope CurrentUser -AllowClobber -Force
谷歌云

如果您要在 Google Cloud 中创建 Image Portability 作业,请下载并安装 Google Cloud SDK 在您的计算机上。

卸载脚本和模块

运行以下命令以卸载 Image Portability 软件使用的模块。

注意:

卸载 IPS 模块时,第三方脚本和组件不会自动删除。

要卸载模块:

Get-InstalledModule -Name "Citrix.Workloads.Portability","Citrix.Images.Uploader" | Uninstall-Module

将凭证添加到 Credential Wallet

对于端到端自动化方案,您可以将 Image Portability Service 配置为以非交互方式对 Citrix Cloud、公有云和本地资源进行身份验证。 此外,每当我们的 API 使用您的本地和公有云资源直接进行身份验证时,Image Portability Service 都会使用存储在 Citrix Credential Wallet 中的凭据。 按照本节所述设置凭证是运行 export、prepare 和 publish 作业的必要步骤。

运行作业时,Image Portability Service 需要访问您可以控制的资源。 例如,要使映像可移植性服务将磁盘从 vSphere 服务器导出到 SMB 共享,该服务需要对两个系统具有登录访问权限。 为了保护此帐户信息,Image Portability Service 使用 Citrix Credential Wallet 服务。 此服务使用用户定义的名称将您的凭证存储在钱包中。 当您要运行作业时,请提供要使用的凭证的名称。 此外,这些凭证可以随时从钱包中更新或删除。

通常为以下平台存储凭据:

  • Microsoft Azure
  • AWS
  • 谷歌云
  • SMB 共享
  • VMware vSphere
  • Nutanix AHV
  • XenServer

要管理凭证,请参阅 图像便携性服务 API 和 Credentials Management 部分的 开发人员 API 门户.

使用图像移植服务

将本地资源位置中的映像准备到公有云订阅需要在 Citrix Cloud 中创建映像可移植性作业。 您可以创建一个作业,以便在脚本或程序中对服务进行直接 API 调用,或者使用我们开发的示例 PowerShell 模块来自动执行 API 调用。 请参阅 Image Portability Service 开发人员 API 门户 了解有关使用 REST API 和 PowerShell 模块创建 IPS 作业的信息。

使用 Citrix Provisioning 发布计算机目录

映像可移植性服务 (IPS) 与 Azure、AWS、Google Cloud、Nutanix、vSphere 和 XenServer 中的 Machine Creation Services (MCS) 一起使用,或 Azure、Google Cloud、vSphere 和 XenServer 中的 Citrix Provisioning (PVS) 一起使用。 您可以将本指南中描述的 PowerShell 和 REST 解决方案与您的平台工具、平台的 API 或 Citrix DaaS SDK 相结合,以创建无缝且自动化的端到端工作流,以便根据准备好的映像创建计算机目录。 根据您选择的云平台,在完成 IPS 准备作业和创建 PVS 目标的目录或分配之间可能需要执行中间步骤。

AWS

在 AWS 上,IPS 会生成包含准备好的映像(默认)的 EC2 EBS 卷,或者生成从准备好的映像创建的 Amazon 系统映像 (AMI)。 请参阅 Image Portability Service 开发人员 API 门户 有关如何创建 AMI 而不是卷的默认值的信息。

请注意,MCS 需要 AMI 才能创建目录。 IPS 使用 AWS VM Import 创建 AMI,这有一定的要求。 在使用 IPS 创建 AMI 之前,请参阅 AWS VM Import/Export 用户指南 了解要求并确保满足这些要求。

Azure

在 Azure 上,IPS 生成可直接用作 MCS 主映像的托管磁盘。 为了将生成的映像分配给 PVS 目标,IPS 提供了一个“发布”操作,用于将托管磁盘复制到 PVS 存储中的 VHD(x) 文件中。

谷歌云

Google Cloud 上的 IPS 准备作业会生成一个磁盘。 MCS 需要 Google Cloud 实例模板。 从磁盘创建 MCS 实例模板的过程在 准备一个主 VM 实例和一个持久磁盘.

对于 Google Cloud 上的 PVS 目标,IPS 提供了一个“发布”操作,用于将磁盘复制到 PVS 存储中的 VHD(x) 文件中。

自动化 VDA 配置

准备源自本地的 Citrix 管理的映像时,可以在映像中重新配置 VDA,以支持为其准备映像的目标环境。 Image Portability Service 可以在工作流的准备阶段动态应用 VDA 配置更改。 以下配置参数定义 VDA 在迁移的映像中的运行方式: 安装 Misa, XdReconfigure安装 Mcsio. 看 Image Portability Service PowerShell 示例 在创建 IPS 作业时定义这些参数。

配置

  • 配置 安装 Misa 使 Image Portability Service 能够安装使用 MCS 置备映像所需的任何缺失的 VDA 组件。

  • 配置 安装 Misa安装 Mcsio 还需要配置 CloudProvisioningTypeMCS 系列.

  • 设置 安装 Pvs 添加到要部署映像的 PVS 服务器的版本。 什么时候 安装 Pvs ,则映像可移植性服务 (IPS) 会在准备作业期间自动在映像中安装指定版本的 PVS 目标设备软件。 IPS 支持最新的两个长期服务版本 (LTSR) 和当前版本 (CR) 的最新两个版本(基本版本或累积更新)。

对于两者 安装 Misa安装 Mcsio,请注意以下事项:

  • 这些功能仅支持 VDA 的最新 LTSR 和 CR 版本。

  • 如果已安装的 VDA 已存在必要的组件,则不会进行任何更改,即使配置了参数也是如此。

  • 对于受支持的 VDA 版本,Image Portability 会安装所需组件的适当版本,即使不存在必要的 VDA 组件也是如此。

  • 对于不受支持的 VDA 版本,如果不存在必要的 VDA 组件,则重新配置将失败,并记录一条消息。 即使 VDA 重新配置未完成,准备作业也会完成。

XdReconfigure 需要以下值之一: 控制器site_guid. 以下是使用每个值的示例配置参数:

控制器:

XdReconfigure = @( [pscustomobject]@{ ParameterName = 'controllers' ParameterValue = 'comma-separated-list-of-your-cloud-connectors-fqdns' } )

其中, 参数值 是将 VDA 指向的新 DDC 的 FQDN 列表。 可以以逗号分隔的格式指定多个 DDC。

site_guid:

XdReconfigure = @( [pscustomobject]@{ ParameterName = 'site_guid' ParameterValue = 'active-directory-site-guid' } )

XdReconfigure 还接受使用 /配置 install switch 等 XenDesktopVdaSetup.exe /reconfigure. 这些值的一些示例包括 wem_agent_port, wem_cached_data_sync_port, wem_cloud_connectorswem_server. 有关 VDA 重新配置命令行选项的完整列表,请参阅 Citrix DaaS VDA 文档.

配置 安装 Mcsio 自动在映像上安装 MCSIO。 要在映像上禁用自动 MCSIO 安装,请配置 安装 Mcsio.

注意:

您可以使用 -DryRun 同时运行命令以验证您的配置和连接器设备的网络设置。

参考

本节根据您的需求详细介绍技术参考信息。

Image Portability Services 所需的权限

本节详细介绍了 Image Portability Service 在每个受支持的本地和云平台上所需的权限。

连接器设备所需的权限

连接器设备需要访问以下 URL 才能在 Image Portability Service 中准备映像:

api-ap-s.cloud.com api-eu.cloud.com api-us.cloud.com credentialwallet.citrixworkspaceapi.net graph.microsoft.com login.microsoftonline.com management.azure.com *.blob.storage.azure.net

VMware vCenter 所需的权限

在 VMware 环境中运行 IPS 导出磁盘作业需要以下 vCenter 权限。 这些权限可以在 角色存取控制 部分。

- Cryptographic operations - Direct Access - Datastore - Allocate space - Browse datastore - Low level file operations - Remove file - Folder - Create folder - Delete folder - Network - Assign network - Resource - Assign virtual machine to resource pool - Virtual machine - Change Configuration - Add existing disk - Add new disk - Remove disk - Edit Inventory - Create from existing - Create new - Remove - Interaction - Power off - Power on

Microsoft Azure 所需的权限

映像可移植性要求您的 Azure 服务帐户具有以下权限。

当指定了用于合成引擎的资源组时(即,在 resourceGroup 属性或 -AzureVmResourceGroup 参数,则在资源组范围内需要以下权限。

Microsoft.Compute/disks/beginGetAccess/action Microsoft.Compute/disks/endGetAccess/action Microsoft.Compute/disks/delete Microsoft.Compute/disks/read Microsoft.Compute/disks/write Microsoft.Compute/virtualMachines/delete Microsoft.Compute/virtualMachines/powerOff/action Microsoft.Compute/virtualMachines/read Microsoft.Compute/virtualMachines/write Microsoft.Network/networkInterfaces/delete Microsoft.Network/networkInterfaces/join/action Microsoft.Network/networkInterfaces/read Microsoft.Network/networkInterfaces/write Microsoft.Network/networkSecurityGroups/delete Microsoft.Network/networkSecurityGroups/join/action Microsoft.Network/networkSecurityGroups/read Microsoft.Network/networkSecurityGroups/write Microsoft.Resources/deployments/operationStatuses/read Microsoft.Resources/deployments/read Microsoft.Resources/deployments/write Microsoft.Resources/subscriptions/resourcegroups/read

如果未指定用于合成引擎的资源组,则订阅范围需要以下权限。

Microsoft.Compute/disks/beginGetAccess/action Microsoft.Compute/disks/endGetAccess/action Microsoft.Compute/disks/read Microsoft.Compute/disks/write Microsoft.Compute/virtualMachines/powerOff/action Microsoft.Compute/virtualMachines/read Microsoft.Compute/virtualMachines/write Microsoft.Network/networkInterfaces/join/action Microsoft.Network/networkInterfaces/read Microsoft.Network/networkInterfaces/write Microsoft.Network/networkSecurityGroups/join/action Microsoft.Network/networkSecurityGroups/read Microsoft.Network/networkSecurityGroups/write Microsoft.Resources/deployments/operationStatuses/read Microsoft.Resources/deployments/read Microsoft.Resources/deployments/write Microsoft.Resources/subscriptions/resourceGroups/delete Microsoft.Resources/subscriptions/resourceGroups/write Microsoft.Authorization/roleAssignments/read Microsoft.Authorization/roleDefinitions/read

在指定的目标资源组(即 targetDiskResourceGroupName 属性或 -目标资源组 参数。

Microsoft.Compute/disks/beginGetAccess/action Microsoft.Compute/disks/delete Microsoft.Compute/disks/read Microsoft.Compute/disks/write Microsoft.Compute/snapshots/delete Microsoft.Compute/snapshots/read Microsoft.Compute/snapshots/write

在指定的虚拟网络资源组(即 virtualNetworkResourceGroupName (虚拟网络资源组名称) 属性或 -AzureVirtualNetworkResourceGroupName 参数。

Microsoft.Network/virtualNetworks/read Microsoft.Network/virtualNetworks/subnets/join/action

-priority

ceVmSku “prepare”和“prepareAndPublish”作业的选项控制生成的托管磁盘适合的 Azure VM 类型。 您必须选择与要从输出映像置备的 VM 具有相同系列和版本的ceVmSku。 默认值 Standard_D2S_v3 适合在所有 v3 D 系列计算机上运行。 不支持指定不包含临时磁盘的计算机 SKU。

Google Cloud 所需的权限

Image Portability 要求您的 Google Cloud 服务帐号具有以下权限:

cloudbuild.builds.create cloudbuild.builds.get cloudbuild.builds.list compute.disks.create compute.disks.delete compute.disks.get compute.disks.list compute.disks.setLabels compute.disks.use compute.disks.useReadOnly compute.globalOperations.get compute.images.create compute.images.delete compute.images.get compute.images.list compute.images.setLabels compute.images.useReadOnly compute.instances.create compute.instances.delete compute.instances.get compute.instances.setLabels compute.instances.setMetadata compute.instances.setServiceAccount compute.instances.setTags compute.instances.stop compute.instances.updateDisplayDevice compute.networks.get compute.networks.list compute.subnetworks.use compute.zoneOperations.get compute.zones.get compute.zones.list iam.serviceAccounts.actAs iam.serviceAccounts.get iam.serviceAccounts.list resourcemanager.projects.get storage.buckets.create storage.buckets.delete storage.buckets.get storage.objects.create storage.objects.delete storage.objects.get storage.objects.list

AWS 所需的权限

Image Portability 要求您将具有以下配置的 JSON 策略文档附加到 Identity and Access Management (IAM) 用户:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ebs:CompleteSnapshot", "ebs:PutSnapshotBlock", "ebs:StartSnapshot", "ec2:CreateImage", "ec2:CreateSnapshot", "ec2:CreateTags", "ec2:DeleteImage", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2:DeregisterImage", "ec2:DescribeImages", "ec2:DescribeImportImageTasks", "ec2:DescribeInstances", "ec2:DescribeRegions", "ec2:DescribeSecurityGroups", "ec2:DescribeSnapshots", "ec2:DescribeSubnets", "ec2:ImportImage", "ec2:RebootInstances", "ec2:RegisterImage", "ec2:RunInstances", "ec2:TerminateInstances", "iam:GetRole" ], "Effect": "Allow", "Resource": "*" } ] }

注意:

您可能希望根据需要进一步缩小 Resource 的范围。

Nutanix AHV 所需的权限

映像可移植性要求您是 Nutanix AHV 配置中的集群管理员。

XenServer 所需权限

映像可移植性要求您至少具有 XenServer 主机所在池的“VM 管理员”角色。

联网

映像可移植性服务 (IPS) 创建一个称为合成引擎 (CE) 的工作程序 VM 来执行映像操作。 关联资源位置中的所有连接器设备都必须能够通过 HTTPS 与 CE 通信。 连接器设备 (CA) 和 CE 之间的所有通信均由 CA 发起,但 vSphere 中存在双向 HTTPS 通信的单个例外除外。

在云环境(Azure、AWS、Google Cloud)中,CE 是使用私有 IP 地址创建的。 因此,CE 必须与 CA 位于同一虚拟网络上,或者位于可从 CA 访问的虚拟网络上。

此外,对于涉及 SMB 共享上的文件的任务(例如,导出任务),CE 必须位于连接到 SMB 共享的网络上。

请参阅 Image Portability Service API 文档 ,详细了解如何在每个支持的平台中指定用于 CE 的网络。

对于“准备”作业,将引导映像中包含的操作系统(在 CE 上)以执行专用化和其他任务。 如果映像包含电话拨入控制服务器的管理或安全代理,则这些进程可能会干扰准备过程。

如果指定了 domain unjoin 选项,则网络连接可能会影响结果。 如果合成引擎 VM 可以通过网络访问 Active Directory 域控制器,则 unjoin 将从域中删除计算机帐户。 这会中断从中提取映像的源 VM 的域成员资格。

因此,我们建议将为操作提供的网络与其他网络资源隔离开来。 这可以通过子网隔离或防火墙规则来完成。 看 网络隔离 了解详情。

在某些本地虚拟机管理程序环境中,虚拟机管理程序可能配置了 TLS 服务器证书,该证书要么不受 CA 的受信任根证书颁发机构集的信任,要么与服务器的主机名不匹配。 对于此类情况, IPS 提供作业请求 属性,这些属性可用于解决该问题。 看 TLS 证书 了解详情。

网络代理

如果 CA 和 Internet 之间的网络流量遍历执行 TLS 内省的代理,则可能需要将代理的根证书颁发机构(即代理用于签署其生成的 TLS 证书的证书)添加到 CA 的根证书颁发机构集。 看 向 Citrix Cloud 注册您的连接器设备 了解更多信息。

网络隔离
  • Azure

    在 Azure 中,如果操作中使用的 Azure 服务主体具有必要的 Azure 权限 [^1],则默认情况下会使用附加到其 NIC 的网络安全组 (NSG) 创建 CE。

    [^1]:如果显式资源组用于操作,则资源组范围内的以下权限:

    • Microsoft.Network/networkSecurityGroups/join/action
    • Microsoft.Network/networkSecurityGroups/读取
    • Microsoft.Network/networkSecurityGroups/write

      否则,如果未使用显式资源组,则订阅范围内的以下权限:

      • Microsoft.Network/networkSecurityGroups/delete
      • Microsoft.Network/networkSecurityGroups/join/action
      • Microsoft.Network/networkSecurityGroups/读取
      • Microsoft.Network/networkSecurityGroups/write

    此 NSG 配置为阻止所有传入/传出 CE 的流量,但以下情况除外:

    • SMB(端口 445)出站
    • HTTPS(端口 443)入站
    • 内部 Azure 服务所需的

    可以通过设置 网络隔离 属性添加到 . 在这种情况下,如果操作中使用的服务主体没有必要的权限,则作业将失败。 可以通过设置 网络隔离 property 设置为 .

  • AWS

在 AWS 中,要实现 CE 的网络隔离,您可以创建一个或多个网络安全组来阻止所有不需要的流量,然后在作业请求中,使用 securityGroupIds request 参数,该参数以安全组 ID 列表为值。

  • 谷歌云

在 Google Cloud 中,为了实现 CE 的网络隔离,您可以创建防火墙规则来阻止所有不需要的流量,然后通过网络标记将这些规则应用于 CE。 IPS 使用网络标记创建 CE 合成引擎 ,您可以使用 网络标签 job request 参数,该参数将标签列表作为值。

TLS 证书

如果虚拟机管理程序的服务器证书由 CA 不信任的颁发机构签名,则可以使用两种替代方法来解决问题。

  1. 在作业请求中指定要在证书验证中使用的其他根证书颁发机构证书。 此证书必须是用于对虚拟机管理程序的服务器证书进行签名的根证书颁发机构。
  2. 在任务请求中指定管理程序的服务器证书的 SHA-1 指纹。 在这种情况下,证书验证是通过验证虚拟机管理程序返回的证书的 SHA-1 指纹是否与任务请求中提供的指纹匹配来完成的。 如果 CE 和虚拟机管理程序之间存在 TLS 拦截代理,则此方法可能不起作用。

下面为每个平台分别给出了上述任务请求参数,这些参数是:

  • vSphere (电子易满
    1. vCenterSslCaCertificate
    2. vCenterSslFingerprint
  • 努塔尼克斯
    1. prismSslCaCertificate
    2. prismSslFingerprint
  • XenServer
    1. xenSslCaCertificate
    2. xenSslFingerprint 的

请参阅 图片便携服务 API 文档了解更多详细信息。

当虚拟机管理程序服务器的主机名与其证书中的主机名不匹配时,也可能发生证书验证错误。 在这种情况下,可以通过将以下参数设置为 在作业请求中:

  • vSphere (电子易满
    • vCenterSslNoCheck主机名
  • 努塔尼克斯
    • prismSslNoCheck主机名
  • XenServer
    • xenSslNoCheck主机名

相关文档

本内容的正式版本为英文版。部分 Cloud Software Group 文档内容采用了机器翻译,仅供您参考。Cloud Software Group 无法控制机器翻译的内容,这些内容可能包含错误、不准确或不合适的语言。对于从英文原文翻译成任何其他语言的内容的准确性、可靠性、适用性或正确性,或者您的 Cloud Software Group 产品或服务沿用了任何机器翻译的内容,我们均不作任何明示或暗示的保证,并且适用的最终用户许可协议或服务条款或者与 Cloud Software Group 签订的任何其他协议(产品或服务与已进行机器翻译的任何文档保持一致)下的任何保证均不适用。对于因使用机器翻译的内容而引起的任何损害或问题,Cloud Software Group 不承担任何责任。
使用 Image Portability Service 在资源位置之间迁移工作负载