将工作负载迁移到公共云
图像可移植性服务简化了跨平台图像的管理。此特性对于管理本地资源位置和公共云中的资源位置之间的映像非常有用。Citrix虚拟应用程序和桌面REST api可用于自动管理Citrix虚拟应用程序和桌面站点内的资源。
当您使用Citrix Cloud开始将映像从本地位置迁移到公共云订阅时,映像可移植性工作流就开始了。在准备好映像之后,映像可移植性服务将帮助您将映像传输到公共云订阅,并使其准备运行。最后,Citrix Provisioning或Machine Creation Services在您的公共云订阅中提供映像。
组件
图像可移植性服务组件包括:
- 思杰云服务
- 思杰凭证钱包
- Citrix连接器设备
- 合成引擎虚拟机
- PowerShell示例脚本
思杰云服务
Citrix云服务API是一个与图像可移植性服务交互的REST API服务。使用REST API服务,您可以创建和监视Image Portability作业。例如,您可以调用API来启动Image Portability作业,例如导出磁盘,然后调用API来获取作业的状态。
思杰凭证钱包
Citrix凭据钱包服务安全地管理系统凭据,允许图像可移植性服务与您的资产进行交互。例如,当从vSphere导出磁盘到SMB共享时,镜像可移植性服务需要凭据来打开到SMB共享的连接以写入磁盘。如果凭据存储在凭据钱包中,那么图像可移植性服务可以检索和使用这些凭据。
此服务使您能够完全管理您的凭据。云服务API充当访问点,使您能够创建、更新和删除凭据。
合成引擎
合成引擎是图像可移植性服务的主力。合成引擎(CE)是在映像可移植性导出或准备作业开始时创建的单个VM。这些vm是在作业发生的相同环境中创建的。例如,从vSphere中导出磁盘时,CE是在vSphere服务器上创建的。同样,在Azure、AWS或谷歌Cloud中运行准备作业时,CE分别在Azure、AWS或谷歌中创建。CE将磁盘挂载到自己的磁盘上,然后对磁盘执行必要的操作。准备或导出作业完成后,将删除CE虚拟机及其所有组件。
连接器设备
Connector Appliance运行提供商软件来管理IPS资源,它在您的环境(本地环境和Azure、AWS或谷歌云订阅环境)中运行,并充当单个作业的控制器。它接收来自云服务的作业指令,创建和管理合成引擎虚拟机。连接器设备VM充当云服务和环境之间的单个安全通信点。在每个资源位置(本地、Azure、AWS或谷歌Cloud)部署一个或多个连接器设备。为了安全起见,将连接器设备部署到每个资源位置。通过将连接器设备和合成引擎放在同一位置,部署的安全性得到了极大的提高,因为所有组件和通信都保存在您的资源位置内。
PowerShell模块
我们提供了一组PowerShell模块,可以在脚本中使用,作为开发您自己的自定义自动化的起点。所提供的模块是按原样支持的,但是您可以根据部署的需要修改它们。
PowerShell自动化使用提供的配置参数组成对Citrix Cloud API服务的REST调用,以启动作业,然后随着作业的进行向您提供定期更新。
如果您想开发自己的自动化解决方案,可以使用您首选的编程语言直接调用云服务。有关配置和使用图像可移植性服务的详细信息,请参阅API门户REST端点和PowerShell模块。
工作流
映像可移植性服务使用多阶段工作流从本地资源位置为您的公共云订阅准备主目录映像。该服务从本地管理程序平台导出映像,然后将其上传到公共云订阅(我们提供的PowerShell上传实用程序可以帮助实现此操作的自动化)。然后,Image Portability将映像准备好与您的公共云平台兼容。最后,发布映像并准备将其部署为云资源位置中的新机器目录。
这些高级工作流基于映像的源和目标配置(Machine Creation或Citrix provisioning)。所选择的工作流决定需要哪些图像可移植性作业步骤。
请参阅下表,了解每个受支持的IPS工作流需要哪些作业。
工作流(源到目标) | 出口 | 上传 | 准备 | 发布 |
---|---|---|---|---|
MCS到MCS | Y | Y | Y | N |
PVS到MCS* | N | Y | Y | N |
Azure/谷歌云上的PVS到PVS | N | Y | Y | Y |
MCS到Azure/AWS/谷歌云上的PVS | Y | Y | Y | Y |
*假设您拥有原始映像作为Citrix Provisioning vDisk,并且不需要将其直接从源平台管理程序中导出。
需求
要开始使用图像可移植性,您必须满足以下要求。
Citrix机器目录映像
IPS需要使用具有以下测试配置之一的映像:
Windows Server 2016、2019或2022
Windows 10或Windows 11
使用机器创建服务或Citrix Provisioning进行配置
- 使用本地托管连接部署到以下之一:
- VMware vSphere 6.7或7.0(适用于MCS 1912或更高版本)
- Citrix Provisioning 2203或更高版本的流到vSphere 6.7或7.0
- 棱镜元件3。x(目前不支持Prism Central)
Citrix虚拟应用和桌面VDA版本1912 CU5、1912 CU6、2203、2206、2209
- 为Azure中的控制台访问启用了远程桌面服务
Citrix连接器设备
您需要在计划使用映像可移植性的每个资源位置安装和配置Citrix连接器设备。例如,如果您使用映像可移植性将映像从vSphere移动到Azure、AWS和谷歌Cloud,则至少需要三个Citrix连接器设备:
- 位于本地的一个或多个设备与您的vSphere部署进行交互。
- Azure订阅中的一个或多个设备。
- AWS订阅中的一个或多个设备。
- b谷歌Cloud订阅中的一个或多个设备。
- 您的Nutanix AHV虚拟化中的一个或多个设备。
看到部署连接器设备详细说明。
SMB (Windows)文件共享
你需要一个WindowsSMB文件共享用于在您使用图像可移植性服务的本地资源位置托管的导出作业期间临时存储数据。确保共享上的可用空闲空间至少是映像文件系统配置大小的两倍。
用于运行PowerShell脚本的机器
确保运行PowerShell脚本的机器具有以下内容:
PowerShell版本5.1。
SMB文件共享的快速网络连接。它可以是承载文件共享的同一台机器。
快速网络连接到您计划在其中使用图像可移植性特性的公共云平台。例如,Azure、AWS或谷歌Cloud。
参见本节为PowerShell准备一台机器有关如何从PowerShell图库下载和配置图像可移植性模块的详细信息。
您的思杰云客户ID
确保你有一个有效的Citrix DaaS订阅。
要继续,您需要访问Citrix DaaS(以前的Citrix虚拟应用程序和桌面服务)。如果您没有访问权限,请联系您的思杰代表。
参考API入门有关创建和配置用于图像可移植性的API客户机的说明的文档。
Azure需要权限和配置
要使图像可移植性服务在Azure资源中执行操作,您需要向图像可移植性服务使用的Azure服务主体授予某些Azure功能的权限。详细列表请参见Microsoft Azure所需权限。
你可以分配贡献者角色转换为关联资源中的服务主体。或者,为了分配所需的最小权限,您可以创建具有所需权限的自定义角色,并将它们分配给服务主体范围内的适当资源。
请参阅Azure文档中的为Azure服务主体配置安全角色和创建自定义角色。
谷歌云所需的权限和配置
为了让图像可移植性服务在谷歌云项目中执行操作,您需要向图像可移植性服务使用的谷歌云服务主体授予某些功能的权限。
详细列表请参见谷歌云所需权限。
您可以使用以下角色分配这些权限:
- 云构建编辑器
- 计算管理
- 存储管理
- 业务帐号用户
看到 谷歌云文档有关配置服务帐户权限的更多信息,请访问 。
Amazon Web Services需要权限和配置
为了使用Amazon Web Services (AWS)帐户执行图像可移植性服务工作流,相应的身份和访问管理(IAM)用户必须具有正确的权限。
详细列表请参见AWS所需权限。
设置图像可移植性服务
要设置图像携带服务,您需要:
部署连接器设备
图像可移植性要求Citrix连接器设备创建图像可移植性作业。连接器设备有助于保护与本地和公共云环境的交互。连接器设备与图像可移植性服务进行通信,以报告作业状态和整体服务运行状况。
要在您的环境中部署和配置Connector Appliance,请按照中的步骤操作用于云服务的连接器设备。
部署和注册设备后,将自动安装启用Image Portability所需的组件。
为PowerShell准备一台机器
为了帮助您启动和运行图像可移植性,我们创建了PowerShell模块,您可以自定义和使用该服务。
下面的部分描述了如何准备一台机器来运行PowerShell脚本。这些脚本只是几个例子。修改或增强它们以满足您的需求。
注意:
初始安装完成后,使用更新模块更新PowerShell模块。
PowerShell需求
要使用PowerShell脚本,需要满足以下条件:
一台Windows机器,运行驱动映像可移植性作业的PowerShell脚本。机:
拥有最新版本的PowerShell。
具有到本地SMB文件共享的10gb或更好的网络连接,以及到公共云(例如Azure、AWS或谷歌cloud)的快速连接。
可以是同一台机器托管文件共享。
是一台运行Windows 10、Windows Server 2019或Windows Server 2022的机器,并安装了最新的微软补丁。
可以连接到Microsoft PowerShell库下载所需的PowerShell库。
根据您的Windows版本,您可能需要禁用TLS 1.0/1.1支持。指Microsoft PowerShell Gallery TLS支持文档了解更多信息。
默认情况下,PowerShell不自动通过代理服务器进行身份验证。根据微软和代理供应商的最佳实践,确保您已经配置了PowerShell会话以使用代理服务器。
如果您在运行PowerShell脚本时看到与丢失或旧版本的PowerShellGet相关的错误,则需要安装最新版本,如下所示:
' ' ' Install-Module -Name PowerShellGet -Force -Scope CurrentUser -AllowClobber “”
安装库和模块
图像可移植性服务利用Microsoft PowerShell库中的库来驱动可移植性操作。
重要的是:
初始安装完成后,使用更新模块安装新版本。
使用PowerShell命令下载最新模块:
Install-Module -Name "Citrix.Workloads.Portability","Citrix.Image. portable "。上传者”-范围CurrentUser
修改PATH环境变量:
新闻Y和输入接受。
要安装NuGet提供程序:
新闻Y和输入接受。
如果通知不受信任的存储库:
新闻一个(Yes to All)和输入继续。
执行命令确认所有模块已下载完成。
Get-InstalledModule -Name Citrix。* < !——NeedCopy >
该命令返回的输出类似如下:
名字 存储库 描述 Citrix.Image.Uploader PSGallery 将VHD(x)上传到Azure存储帐户、AWS或GCP以及获取有关VHD(x)的信息的命令 Citrix.Workloads.Portability PSGallery 用于Citrix映像可移植性服务映像作业的独立Cmdlet
将模块升级到最新版本
执行以下命令将脚本更新到最新版本。
Update-Module -Name "Citrix.Workloads.Portability","Citrix.Image. portable "。上传者”-强制
安装Citrix虚拟应用程序和桌面远程PowerShell SDK
镜像可移植性服务需要思杰虚拟应用程序和桌面远程PowerShell SDK来创建和管理思杰云中的可移植性作业。
下载并安装远程PowerShell SDK在你的机器上。
安装平台特定的第三方组件
VMware
如果您正在创建与VMware环境通信的Image Portability作业,请运行以下命令来安装所需的VMware PowerShell模块。
Install-Module -Name VMWare。PowerCLI -Scope CurrentUser - allowclober -Force -SkipPublisherCheck
Azure
如果要在Azure中创建映像可移植性作业,请下载并安装Azure命令行实用程序,然后运行这些命令来安装所需的Azure PowerShell模块:
Install-Module -Name Az.Accounts -Scope CurrentUser - allowclober -Force
亚马逊网络服务
如果要在AWS中创建映像可移植性作业,请下载并安装AWS命令行接口,然后运行以下命令安装所需的AWS PowerShell模块:
安装- awstoolsmodule AWS.Tools. ec2、AWS.Tools。S3 < !——NeedCopy >
谷歌云
如果要在b谷歌Cloud中创建Image Portability作业,请下载并安装谷歌云SDK在你的机器上。
卸载脚本和模块
执行如下命令卸载Image Portability软件使用的模块。
注意:
卸载IPS模块时,不会自动移除第三方脚本和组件。
卸载模块。
get - installmodule -Name "Citrix.Workloads.Portability","Citrix.Images. portable "。上传器“|卸载模块
向凭据钱包添加凭据
对于端到端自动化场景,您可以配置映像可移植性服务,以与Citrix Cloud、您的公共云和本地资源进行非交互式身份验证。此外,图像可移植性服务使用存储在Citrix凭据钱包中的凭据,任何时候我们的api都可以直接与您的本地和公共云资源进行身份验证。如本节所述设置凭据是运行导出、准备和发布作业的必要步骤。
在运行作业时,映像可移植性服务需要访问您可以控制的资源。例如,镜像可移植性服务将磁盘从vSphere服务器导出到SMB共享,该服务需要登录两个系统。为了确保此帐户信息的安全,图像可移植性服务使用了Citrix凭据钱包服务。该服务使用用户定义的名称将您的凭据存储在钱包中。当要运行作业时,请提供要使用的凭据的名称。此外,这些凭证可以随时从钱包中更新或删除。
凭据通常存储在这些平台上:
- 微软Azure
- AWS
- 谷歌云
- SMB分享
- VMware vSphere
- Nutanix AHV
要管理凭据,请参考图像可移植性服务api和凭据管理部分开发人员API门户。
使用图像便携服务
将本地资源位置中的映像准备到公共云订阅需要在Citrix cloud中创建映像可移植性作业。您可以创建一个作业来直接调用脚本或程序中的服务API,或者使用我们开发的示例PowerShell模块来自动调用API。参考图像可移植性服务开发人员API门户有关使用REST api和PowerShell模块创建IPS作业的信息。
发布到机器创建服务
图像可移植性服务与Azure、AWS或谷歌云中的机器创建服务一起使用。您可以将本指南中描述的PowerShell和REST解决方案与Citrix DaaS sdk结合起来,创建一个无缝的、自动化的端到端工作流,用于基于准备好的本地映像创建机器目录,并使用machine Creation Services提供映像。
有关的更多信息,请参阅开发人员API门户Citrix DaaS REST api。
有关使用的信息,请参阅Citrix DaaS文档远程PowerShell SDK
自动化VDA配置
在准备源自本地的citrix管理的映像时,可以在映像中重新配置VDA,以支持准备该映像的目标环境。图像可移植性服务可以在工作流的准备阶段动态地应用VDA配置更改。有三个配置参数定义了VDA在迁移映像中的操作方式:InstallMisa,InstallPvs,XdReconfigure。在创建IPS作业时,这些参数定义如下:
InstallMisa = 'true'
配置InstallMisa来真正的使图像可移植性服务能够安装使用MCS提供图像所需的任何缺失的VDA组件。
配置InstallMisa来真正的也需要配置CloudProvisioningType来Mcs。
installpv = ' pv的版本,例如7.31.0'
配置InstallPvs将其设置为要部署映像的PVS版本。当InstallPvs,则镜像可移植性服务在准备作业时自动安装镜像中指定版本的PVS目标设备软件。
配置InstallPvs还需要CloudProvisioningType配置为pv。
对于这两个InstallMisa和InstallPvs,请注意以下事项:
只有最近的LTSR和CR版本的VDA支持这个特性。
如果已经为安装的VDA提供了必要的组件,那么即使配置了参数,也不会进行任何更改。
对于受支持的VDA版本,即使没有必要的VDA组件,Image Portability也会安装所需组件的适当版本。
对于不受支持的VDA版本,如果不存在必要的VDA组件,则重新配置失败,并记录一条消息。即使VDA重新配置没有完成,准备工作也会完成。
XdReconfigure需要下列值之一:控制器或site_guid。下面是使用每个值的配置参数示例:
使用控制器:
XdReconfigure = @([pscustomobject]@{ParameterName = 'controllers' ParameterValue = 'comma-separated-list of your-cloud-connectors-fqdns'})
在哪里ParameterValue是要指向VDA的新ddc的fqdn列表。多个ddc可以以逗号分隔的格式指定。
使用site_guid:
XdReconfigure = @([pscustomobject]@{ParameterName = 'site_guid' ParameterValue = 'active-directory-site-guid'})
XdReconfigure也接受运行VDA命令行安装程序时支持的值/重新配置例如安装开关,XenDesktopVdaSetup.exe /配置).这些值的一些例子包括wem_agent_port,wem_cached_data_sync_port,wem_cloud_connectors,或wem_server。有关VDA重新配置命令行选项的完整列表,请参阅Citrix DaaS VDA文档。
参考
本节提供详细的技术参考信息,以满足用户的需求。
图像可移植性服务所要求的权限
本节详细介绍了映像可移植性服务在每个受支持的本地和云平台上所需的权限。
连接器设备所需的权限
连接器设备需要访问以下url,以便在图像可移植性服务中准备图像:
VMware vCenter所需权限
在VMware环境下,执行IPS导出磁盘作业需要vCenter的以下权限。这些权限可以在角色在访问控制部分。
-密码操作直接访问数据存储分配空间,浏览数据存储——低水平的文件操作删除文件,文件夹,创建文件夹,删除文件夹-网络-分配网络资源分配虚拟机资源池-虚拟机-改变配置添加现有的磁盘-添加新磁盘删除磁盘编辑库存-创建从现有创建新的-删除-互动-权力,权力在< !——NeedCopy >
Microsoft Azure所需权限
映像可移植性要求Azure服务帐户具有以下权限。
指定用于合成引擎的资源组时(即在resourceGroup属性中的属性-AzureVmResourceGroup参数(当使用Citrix.Workloads.Portability Powershell命令时),在资源组范围内需要以下权限。
微软。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.Resources/deployments/operationStatuses/read Microsoft.Resources/deployments/read Microsoft.Resources/deployments/write Microsoft.Resources/subscriptions/resourcegroups/read
如果未指定要用于合成引擎的资源组,则在订阅范围内需要以下权限。
微软。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.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属性中的属性-TargetResourceGroup参数)。
微软。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参数)。
微软。Network/virtualNetworks/read Microsoft.Network/virtualNetworks/subnets/join/action
谷歌云所需权限
镜像可移植性要求您的谷歌云服务帐户具有以下权限:
删除compute.images.get compute.images.list compute.images.delete compute.disks.使用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.setLabels使用compute.subnetworks.useExternalIp compute.zoneOperations.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. instances. settags compute.instances.stop compute.instances.updateDisplayDevice compute.networks.get compute.subnetworks.use compute.zoneOperations.get compute.zones.list iam.serviceAccounts.liststorage.objects.list < !——NeedCopy >
AWS所需权限
图像可移植性要求您将具有以下配置的JSON策略文档附加到IAM (Identity and Access Management)用户:
{"Version": "2012-10-17", "Statement": [{"Action": ["ebs:StartSnapshot", "ebs:PutSnapshotBlock", "ebs:CompleteSnapshot", "ec2:CreateTags", "ec2:CreateImage", "ec2:DeleteSnapshot", "ec2:DeleteVolume", "ec2: dereregisterimage ", "ec2: deregisterimages ", "ec2: descripbesecuritygroups ", "ec2: descripbesnapshots ", "ec2: descripbesubnets ", "ec2:RebootInstances", "ec2:RegisterImage", "ec2:RunInstances", "ec2:TerminateInstances",], "Effect": "Allow", "Resource":“*”}]}
注意:
您可能希望根据需要进一步缩小Resource的范围。
Nutanix AHV需要权限
映像可移植性要求您在您的Nutanix AHV配置中是集群管理员。