将配置迁移到 Citrix Cloud™
Automated Configuration Tool (ACT) 允许将 Citrix Virtual Apps and Desktops™ 配置(策略、应用程序、目录、管理员角色、范围及其他)从一个或多个本地站点迁移到 Citrix Cloud 上托管的 Citrix DaaS。它还可用于在不同云区域或租户之间迁移信息。
此工具可发现并导出一个或多个本地站点作为配置文件的集合,您可以选择性地编辑这些文件。然后,这些文件的配置可以导入到 Citrix DaaS 中。 迁移通过多次运行该工具分阶段完成,使您能够轻松实现所需的配置状态。
ACT 不仅仅是一个一次性迁移工具。您可以使用它来管理日常云操作,例如:
- 自动化从测试或暂存云帐户到生产云帐户的传输
- 备份和恢复您的配置
- 将一个云环境拆分为多个云
以下 2 分钟视频提供了 Automated Configuration 的快速导览。
有关 Automated Configuration 的更多信息,请参阅 Tech Zone 上的 概念验证:Automated Configuration Tool。
要深入了解如何移动部署以及为迁移准备本地配置,请参阅 Tech Zone 上的 部署指南:将 Citrix Virtual Apps and Desktops 从本地迁移到 Citrix Cloud。
已知限制
- 通过 Machine Creation Services™ 预配的计算机目录有特殊注意事项。有关 MCS 的更多信息,请参阅 了解迁移 Machine Creation Services 预配目录。
迁移配置的先决条件
要从 Citrix Virtual Apps™ and Desktops 导出配置,您需要:
- Citrix Virtual Apps and Desktops:当前版本及其直接前身,或 Citrix Virtual Apps and Desktops、XenApp and XenDesktop® LTSRs:所有版本
- 一台已加入域的计算机,其中安装了 .NET Framework 4.7.2 或更高版本以及 Citrix PowerShell SDK。此 SDK 会自动安装在 Delivery Controller 上。(要在本地 Delivery Controller 以外的计算机上运行,必须安装 Citrix Studio,因为 Studio 会安装正确的 PowerShell 管理单元。Studio 安装程序可在 Citrix Virtual Apps and Desktops 安装介质上找到。)
要将配置 导入 到 Citrix DaaS 中,您需要:
- 一台可访问 Citrix Cloud 的计算机。这不必是 Delivery Controller™ 或已加入域的计算机。
- 已预配 Citrix DaaS。
- 一个已安装 Connector 并已加入与本地设置相同域的活动资源位置。
- 必须允许并提供对访问 Citrix Cloud 的站点的连接。有关详细信息,请参阅 系统和连接要求。
注意:
Automated Configuration 无法安装在 Cloud Connector 系统上。
关键步骤
- 下载 Automated Configuration Tool 并查看系统要求。请参阅 下载 Automated Configuration。
- 使用从 Citrix Cloud 门户生成的
CustomerName
、CustomerID
和SecretKey
值填充CustomerInfo.yml
文件。请参阅 生成客户 ID、客户端 ID 和密钥 和 填充客户信息文件。 - 如果本地站点包含多个区域,请更新
ZoneMapping.yml
文件以将区域映射到 Citrix DaaS 资源位置。请参阅 填充区域映射文件。 - 如果站点包含多个主机连接,请使用每个主机类型迁移到 Citrix DaaS 的连接信息更新
CvadAcSecurity.yml
文件。如果只有一个主机连接,请使用该主机连接的连接信息更新CvadACSecurity.yml
文件。请参阅 更新主机连接的安全文件。 - 打开 ACT 并使用
Export-CvadAcToFile
命令导出您的本地站点。有关支持迁移的组件列表,请参阅 支持的迁移对象。有关导出步骤的信息,请参阅 导出本地配置。 - 使用
Merge-CvadAcToSite
命令分阶段导入组件。或者,一次性迁移整个站点。请确保按照 组件迁移顺序 中列出的顺序迁移组件。有关导入步骤的信息,请参阅 运行导入。 - 激活云站点。请参阅 激活站点。
下载 Automated Configuration
从 Citrix Downloads 下载并安装 Automated Configuration 工具。
升级 Automated Configuration
为防止功能错误,请始终使用最新可用版本的 ACT。
要了解您的工具版本,请执行以下操作:
- 双击 Auto Config 图标。将出现一个 PowerShell 窗口。
-
运行以下命令以检查您的版本号。
Get-CvadAcStatus <!--NeedCopy-->
- 将您的工具版本与 Citrix Downloads 中列出的版本进行比较。最新版本的工具位于该处。
- 下载并安装最新版本的工具。您 无需 卸载旧版本即可升级 Automated Configuration。
注意:
当您在 Automated Configuration 中运行 cmdlet 以访问云时,如果检测到有新版本可供下载,该工具会提醒您。有关 cmdlet 的更多信息,请参阅 Automated Configuration 工具 cmdlet。
生成客户 ID、客户端 ID 和密钥
要将本地站点迁移到 Citrix DaaS,请使用 Citrix Cloud 门户中的客户 ID、客户端 ID 和密钥填充 CustomerInfo.yml
文件。
要检索客户 ID:
- 登录您的 Citrix Cloud 帐户并选择客户。
- 单击网格图标并选择 Identity and Access Management。
- 导航到 API access > Secure clients。客户 ID 将显示在该页面上。
要检索客户端 ID 和密钥:
- 在 Secure clients 页面上,在框中输入一个名称。此名称用于区分多个客户端 ID 和密钥。
- 单击 Create Client 以创建客户端 ID 和密钥。
- 将客户端 ID 和密钥复制到安全位置,并下载包含此信息的
.csv
文件。使用此.csv
文件填充CustomerInfo.yml
文件。
注意:
- 客户端 ID 和密钥不会过期。如果它们被泄露,请立即使用 Trash 图标将其删除并创建新的。
- 如果密钥丢失或遗忘,则无法检索;必须创建新的客户端 ID 和密钥。
填充客户信息文件
CustomerInfo.yml
文件消除了每次运行 cmdlet 时都需要提供客户信息参数的麻烦。任何客户信息都可以通过使用 cmdlet 参数进行覆盖。
使用 New-CvadAcCustomerInfoFile
cmdlet 创建 CustomerInfo.yml
文件。
重要提示:
请勿手动编辑
CustomerInfo.yml
文件。这样做可能会导致意外的格式错误。
New-CvadAcCustomerInfoFile
cmdlet 具有以下必需参数。
- CustomerId – 客户 ID。
- ClientId – 在 Citrix Cloud 上创建的客户客户端 ID。
- Secret – 在 Citrix Cloud 上创建的客户密钥。
Example:
New-CvadAcCustomerInfoFile -CustomerId markhof123 -ClientId 6813EEA6-46CC-4F8A-BC71-539F2DAC5984 -Secret TwBLaaaaaaaaaaaaaaaaaw==
<!--NeedCopy-->
您还可以使用指向下载的 security.csv
文件的 SecurityCsvFileSpec
参数创建 CustomerInfo.yml
。您还必须指定 CustomerId。
New-CvadAcCustomerInfoFile -SecurityCsvFileSpec C:\Users\my_user_name\downloads/security.csv -CustomerId markhof123
<!--NeedCopy-->
使用 Set-CvadAcCustomerInfoFile
cmdlet 更新 CustomerInfo.yml
文件。此 cmdlet 仅更改客户端 ID。
Set-CvadAcCustomerInfoFile -ClientId C80487EE-7113-49F8-85DD-2CFE30CC398E
<!--NeedCopy-->
以下是 CustomerInfo.yml
文件的示例。
# Created/Updated on 2020/01/29 16:46:47
CustomerId: ‘markhof123’
ClientId: ‘6713FEA6-46CC-4F8A-BC71-539F2DDK5384’
Secret: ‘TwBLaaabbbaaaaaaaaaaw==’
Environment: Production
AltRootUrl: ‘’
StopOnError: False
AlternateFolder: ‘’
Locale: ‘en-us’
Editor: ‘C:\Program Files\Notepad++\notepad++.exe’
Confirm: True
DisplayLog: True
填充区域映射文件
本地区域相当于云资源位置。与其他站点组件不同,您无法自动将本地区域导入到云中。相反,必须使用 ZoneMapping.yml
文件手动映射。如果区域名称未与现有资源位置名称关联,则可能会发生导入失败。
如果本地站点只有一个区域且云站点只有一个资源位置,则 Automated Configuration 工具会进行正确的关联,从而无需手动管理 ZoneMapping.yml
文件。
但是,如果本地站点有多个区域或云站点有多个资源位置,则需要手动更新 ZoneMapping.yml
文件以反映本地区域到云资源位置的正确映射。
ZoneMapping.yml
文件位于 %HOMEPATH%\Documents\Citrix\AutoConfig
。.yml
文件的内容是一个字典,其中区域名称作为键,资源位置名称作为值。
例如,一个具有名为“Zone-1”的主区域和名为“Zone-2”的辅助区域的本地 Citrix Virtual Apps and Desktops 站点将迁移到具有两个新创建的云资源位置(名为“Cloud-RL-1”和“Cloud-RL-2”)的 Citrix DaaS 部署。在这种情况下,ZoneMapping.yml
将配置如下:
Zone-1: Cloud-RL-1
Zone-2: Cloud-RL-2
注意:
在冒号和资源位置名称之间添加一个空格。如果区域或资源位置名称中包含空格,请用引号将名称括起来。
更新主机连接的安全文件
主机连接及其关联的虚拟机管理程序可以使用 ACT 导出和导入。
将虚拟机管理程序添加到主机连接需要特定于虚拟机管理程序类型的安全信息。出于安全考虑,此信息无法从本地站点导出。您必须手动提供信息,以便 Automated Configuration 能够成功将主机连接和虚拟机管理程序导入到云站点。
导出过程会在 %HOMEPATH%\Documents\Citrix\AutoConfig
中创建 CvadAcSecurity.yml
文件,其中包含特定虚拟机管理程序类型所需的每个安全项的占位符。在导入到云站点之前,您必须更新 CvadAcSecurity.yml
文件。管理员更新会在多次导出中保留,并根据需要添加新的安全占位符。安全项永远不会被删除。有关更多信息,请参阅 手动更新 CvadAcSecurity.yml 文件。
HostConn1:
ConnectionType: XenServer®
UserName: root
PasswordKey: rootPassword
HostCon2:
ConnectionType: AWS
ApiKey: 78AB6083-EF60-4D26-B2L5-BZ35X00DA5CH
SecretKey: TwBLaaaaaaaaaaaaaaaaaw==
Region: East
每个虚拟机管理程序的安全信息
以下列出了每种虚拟机管理程序类型所需的安全信息。
- XenServer、Hyper-V、VMware
- 用户名
- 明文密码
- Microsoft Azure
- 订阅 ID
- 应用程序 ID
- 应用程序密钥
- AWS
- 服务帐户 ID
- 应用程序密钥
- 区域
特殊安全注意事项
所有安全信息均以明文形式输入。如果不建议使用明文,则可以使用 Studio 手动创建主机连接和关联的虚拟机管理程序。主机连接和虚拟机管理程序名称必须与其本地对应项完全匹配,以便使用主机连接的计算机目录能够成功导入。
导出您的 Citrix Virtual Apps and Desktops 本地配置
使用 export
PowerShell 命令,您可以导出现有的本地配置并获取必要的 .yml
文件。这些文件用于将所需的配置导入到 Citrix Cloud 中。
支持的迁移对象
Automated Configuration 支持移动以下组件的配置:
- 标记
- 委派管理员
- 范围
- 角色
- 主机连接
- 单个资源池
- 管理员范围
- 计算机目录
- 管理员范围
- 计算机
- 远程 PC 访问、物理、池化、预配、MCS、已分配
- StoreFront™
- 交付组
- 访问策略
- 管理员范围关联
- 应用程序访问策略
- 分配策略
- 授权/桌面策略
- 电源计划
- 会话保留
- 会话预启动
- 重新启动计划
- 标记
- 应用程序组
- 管理员范围关联
- 交付组
- 用户和组
- 应用程序
- 应用程序文件夹
- 图标
- 应用程序
- Broker 配置的 FTA
- 标记
- 组策略
- 用户区域首选项
导出本地配置
- 双击 Auto Config 图标。将出现一个 PowerShell 窗口。
-
运行以下命令以导出所有组件。导出本地配置 不会 以任何方式更改它。
Export-CvadAcToFile <!--NeedCopy-->
首次运行任何 cmdlet 后,将创建一个包含 .yml
配置文件和日志的导出文件夹。该文件夹位于 %HOMEPATH%\Documents\Citrix\AutoConfig
。每次后续导出都会创建一个子文件夹。父文件夹 %HOMEPATH%\Documents\Citrix\AutoConfig
始终包含最新导出的文件。
注意:
如果 Automated Configuration 未安装在 Delivery Controller 上,请在使用 PowerShell 通过该工具之前运行
import-module Citrix.AutoConfig.Commands
。如果您使用 Auto Config 图标打开 Automated Configuration,则不需要此步骤。
如果遇到任何错误或异常,请参阅日志文件中的 Fixups 部分。
将配置导入到 Citrix DaaS
重要提示:
- 将本地部署迁移到云时,请确保包含 Citrix 设置的域和 OU GPO 已迁移到云。Citrix Web Studio™ 不支持 GPMC,因此域和 OU GPO 在 Web Studio 中不可见。Citrix 策略引擎对位于域和 OU 中的 VDA 和用户强制执行域和 OU GPO。用户登录 VDA 后,可能会看到域和 OU GPO 中的策略已应用于其会话。但是,管理员无法看到这些策略和设置,这可能会导致混淆。
组件迁移顺序
此处列出了组件及其依赖项。组件的依赖项必须在导入或合并之前就位。如果缺少依赖项,可能会导致导入或合并命令失败。如果导入或合并失败,日志文件的 Fixups 部分会显示缺少的依赖项。
- 标记
- 无前置依赖项
- 委派管理员
- 无前置依赖项
- 主机连接
- CvadAcSecurity.yml 中的安全信息
- 计算机目录
- Active Directory 中存在的计算机
- 主机连接
- 标记
- StoreFront
- 交付组
- Active Directory 中存在的计算机
- Active Directory 中存在的用户
- 计算机目录
- 标记
- 应用程序组
- 交付组
- 标记
- 应用程序
- 交付组
- 应用程序组
- 标记
- 组策略
- 交付组
- 标记
- 用户区域首选项
运行导入
- 双击 Auto Config 图标。将出现一个 PowerShell 窗口。
-
运行以下命令以导入所有组件。
Merge-CvadAcToSite <!--NeedCopy-->
使用新的当前状态验证预期状态。各种导入选项控制导入结果是与本地站点相同还是其子集。
运行 cmdlet 后,将创建一个包含 .yml
配置文件和日志的导出文件夹。该文件夹位于 %HOMEPATH%\Documents\Citrix\AutoConfig
。
如果遇到任何错误或异常,请参阅日志文件中的 Fixups 部分。
注意:
如果 Automated Configuration 未安装在 Delivery Controller 上,请在使用 PowerShell 通过该工具之前运行
import-module Citrix.AutoConfig.Commands
。如果您使用 Auto Config 图标打开 Automated Configuration,则不需要此步骤。
要恢复到原始的 Citrix DaaS 配置,请参阅 备份您的 Citrix DaaS 配置。
了解导入操作
导入过程旨在准确执行更新、仅执行必要的更新并验证所有更新是否已正确完成。所有导入操作都遵循以下步骤:
- 读取导出的 .yml 文件(预期状态)。
- 读取云(当前状态)。
- 将导入前的云状态备份到 .yml 文件(如有必要,可以恢复预备份)。
- 评估预期状态和当前状态之间的差异。这决定了要进行的更新。
- 进行更新。
- 重新读取云(新当前状态)。
- 将导入后的云状态备份到 .yml 文件(如有必要,可以恢复导入后备份)。
- 比较新的当前状态与预期状态。
- 报告比较结果。
粒度迁移
重要提示:
有关组件迁移顺序的更多信息,请参阅 组件迁移顺序。
您可以选择性地仅迁移组件,甚至仅迁移组件名称。
- 支持的组件参数包括
MachineCatalogs
、Tags
等。 - 支持的组件名称参数包括
IncludeByName
和ExcludeByName
参数等。
有关参数及其使用方法的更多信息,请参阅 粒度迁移参数。
激活站点
本地和云站点中的交付控制器都控制着资源,例如代理桌面、应用程序和重新启动计算机。当一组通用资源由两个或多个站点控制时,就会出现问题。从本地站点迁移到云站点时可能会出现这种情况。本地和云交付控制器都可能管理同一组资源。这种双重管理可能导致资源变得不可用和无法管理,并且难以诊断。
站点激活允许您控制活动站点的控制位置。
站点激活通过交付组维护模式进行管理。当站点不活动时,交付组将置于维护模式。对于活动站点,交付组将取消维护模式。
站点激活不影响或管理 VDA 注册或计算机目录。
Set-CvadAcSiteActiveStateCloud
Set-CvadAcSiteActiveStateOnPrem
所有 cmdlet 都支持 IncludeByName
和 ExcludeByName
筛选。此参数允许您选择哪些交付组可以更改其维护模式。可以根据需要选择性地更改交付组。
导入并将控制权转移到云
以下是关于如何从本地站点导入并将控制权转移到云站点的高级描述。
- 将本地站点导出并导入到云。确保任何导入 cmdlet 上都不存在
–SiteActive
参数。本地站点处于活动状态,云站点处于非活动状态。默认情况下,云站点交付组处于维护模式。 - 验证云内容和配置。
- 在非工作时间,将本地站点设置为非活动状态。
–SiteActive
参数必须不存在。所有本地站点交付组都处于维护模式。Set-CvadAcSiteActiveStateOnPrem
- 将云站点设置为活动状态。
–SiteActive
参数必须存在。没有云站点交付组处于维护模式。Set-CvadAcSiteActiveStateCloud –SiteActive
- 验证云站点是否处于活动状态,本地站点是否处于非活动状态。
将控制权转回本地站点
要将控制权从云站点转回本地站点:
- 在非工作时间,将云站点设置为非活动状态。所有云站点交付组都处于维护模式。
Set-CvadAcSiteActiveStateCloud
- 将本地站点设置为活动状态。没有本地站点交付组处于维护模式。
Set-CvadAcSiteActiveStateOnPrem -SiteActive
其他站点激活信息
- 如果没有计算机进行电源管理,并且没有重新启动计划(这通常意味着也没有主机连接),则所有云交付组都可以作为活动组导入。在导入后,将
-SiteActive
添加到Merge-CvadAcToSite
/Import-CvadAcToSite
或运行Set-CvadAcSiteActiveStateCloud -SiteActive
。 - 如果计算机进行电源管理或有重新启动计划,则需要不同的过程。例如,在这种情况下从本地切换到云时,使用
Set-CvadAcSiteActiveStateOnPrem
将本地站点设置为非活动状态。然后,使用Set-CvadAcSiteActiveStateCloud -SiteActive
将云站点设置为活动状态。 -
Set-CvadAcSiteActiveStateCloud
和Set-CvadAcSiteActiveStateOnPrem
cmdlet 也用于反转此过程。例如,在不带-SiteActive
参数的情况下运行Set-CvadAcSiteActiveStateCloud
,然后带-SiteActive
参数运行Set-CvadAcSiteActiveStateOnPrem
。
了解迁移 Machine Creation Services 预配目录
注意:
此功能仅在 3.0 及更高版本中可用。通过 Automated Configuration 中的
Get-CvadAcStatus
检查您的版本。
Machine Creation Services (MCS) 目录创建两种不同类型的目录:
- 当对计算机所做的更改丢失或恢复时(通常是发布应用程序的服务器 OS)——这是一个池化 VDI / 多会话用例
- 当对计算机所做的更改在重新启动后保留时(通常是具有专用用户的客户端 OS)——这是一个静态 VDI 用例
可以在 Citrix Studio 的目录节点中通过查看目录的“User data:”值来确认目录类型。
注意:
无法使用 Automated Configuration 从云中备份 MCS。
池化 VDI / 多会话目录
“User data: Discard”的目录是池化 VDI 目录,只能迁移主映像和配置。这些目录中的任何虚拟机都不会迁移。这是因为虚拟机的生命周期由您从中导入的站点维护,这意味着每次打开计算机时,其状态都可能发生变化。这使得导入变得不可能,因为虚拟机的导入数据会很快不同步。
当您使用该工具迁移这些目录时,它会创建目录元数据并启动主映像创建,但不会导入任何计算机。
由于此过程可能需要一些时间才能根据主映像的大小创建,因此工具中的导入命令仅启动 MCS 目录创建,而不等待其完成。导入完成后,请使用云部署中的 Studio 监视目录创建进度。
创建主映像后,您可以预配计算机。请考虑容量因素,因为您将消耗本地使用中的容量。
使用该目录的所有其他对象(交付组、应用程序、策略等)都可以导入,并且无需等待主映像创建。目录创建完成后,可以将计算机添加到导入的目录中,然后用户可以启动其资源。
注意:
使用工具中可用的相同命令迁移目录和所有其他对象。
静态 VDI 目录
注意:
由于此操作导入存储在数据库中的低级详细信息,因此此过程必须从具有数据库访问权限的计算机上运行。
静态 VDI 目录迁移主映像、配置和所有虚拟机。与池化 VDI 用例不同,无需创建映像。
VDA 必须指向连接器才能向云注册。
请参阅 激活站点 部分以激活云站点,以便重新启动计划、电源管理和其他项目由云控制。
迁移完成后,如果您想从本地站点删除此目录,则必须选择 leave VM and AD account。否则,它们将被删除,云站点将指向已删除的 VM。
更新 MCS 标记以在迁移后检测孤立资源
将本地配置迁移到云站点,或将云配置迁移到另一个云站点后,您必须更新 MCS 站点 ID 标记(对于持久性 VM),以便正确检测孤立资源。为此,请使用 PowerShell 命令 Set-ProvResourceTags
。目前,此功能适用于 Azure。
详细步骤如下:
-
使用 PowerShell 命令
Set-ProvResourceTags
从新的 Citrix 站点更新 MCS 站点 ID 标记。例如:Set-ProvResourceTags -ProvisioningSchemeUid xxxxx [-VMName <String>] [-VMBatchSize XX] [-ResourceType XX] <!--NeedCopy-->
或者,
Set-ProvResourceTags -ProvisioningSchemeName xxxxx [-VMName <String>] [-VMBatchSize XX] [-ResourceType XX] <!--NeedCopy-->
参数详细信息如下:
-
ProvisioningSchemeUid
或ProvisioningSchemeName
是一个强制参数。 -
VMName
是一个可选参数。如果未指定VMName
,则更新此计算机目录中所有 VM 的标记。 -
VMBatchSize
是一个可选参数,用于将所有 VM 分批。如果未指定VMBatchSize
,则应用默认值 (10)。范围是 1 到 60。 -
ResourceType
可以是以下之一:-
MachineCatalog
:用于更新计算机目录资源的标记。 -
VirtualMachine
:用于更新 VM 相关资源的标记。 -
All
:(默认 ResourceType):用于更新计算机目录和 VM 相关资源的标记。
-