Citrix DaaS

将配置迁移到 Citrix Cloud

为什么使用自动配置

负责大型或复杂环境的 IT 管理员通常会发现迁移是一个繁琐的过程。他们最终经常编写自己的工具来成功完成此任务,因为它往往是特定于他们的使用案例。

Citrix 希望通过使用自动配置工具自动执行迁移过程来帮助简化此过程。管理员可以轻松地在 Citrix Cloud 中测试当前配置,并利用 Citrix DaaS(以前称为 Citrix Virtual Apps and Desktops 服务)提供的优势,同时保持当前环境不变。由于自动配置可在后台无缝运行,因此也不会对最终用户造成影响。这些好处包括在 Citrix 管理部分后端和控制平面时降低管理过载、自动和可自定义的 Citrix Cloud 组件更新等。

Citrix 使用行业标准配置即代码来提供一种帮助自动化迁移过程的机制。自动配置发现一个或多个本地站点并将其导出为配置文件的集合。然后,可以将这些文件的配置导入到 Citrix DaaS 中。

自动配置还允许管理员将多个本地站点合并到一个站点中,同时避免名称冲突。管理员可以控制本地配置还是云配置控制资源。

自动配置不仅是一次性迁移工具,还可以在 Citrix Cloud 中自动执行日常配置。移动 Citrix DaaS 配置有很多好处,原因如下:

  • 将您的站点从测试或阶段同步到生产
  • 备份和还原配置
  • 达到资源限制
  • 从一个区域迁移到另一个区域

下面这个 2 分钟的视频提供了自动配置的快速浏览。

有关自动配置的更多信息,请参阅 Tech Zone 上的概念证明:自动配置工具

要深入了解如何移动您的部署和准备好迁移本地配置,请参阅 Tech Zone 上的部署指南:将 Citrix Virtual Apps and Desktops 从本地迁移到 Citrix Cloud

下载自动配置

Citrix 下载下载并安装自动配置工具。

重要:

为防止功能出现错误,请始终使用可用的最新版本的自动配置。

升级自动配置

在自动配置中运行访问云的 cmdlet 时,当有更新版本可供下载时,该工具会提醒您。

自动化配置升级

可以按照以下步骤确保拥有最新版本:

  1. 双击自动配置图标。此时将显示 PowerShell 窗口。
  2. 运行以下命令以检查您的版本号。

    Get-CvadAcStatus

  3. 根据警告或 Citrix 下则中列出的版本检查您的工具版本。该工具的最新版本位于此处。
  4. 下载并安装最新版本的工具。需卸载旧版本即可升级自动配置。

注意:

每次运行访问云的 cmdlet 时都会出现警报。有关 cmdlet 的详细信息,请参阅自动配置工具 cmdlet

已知限制

支持的迁移对象

自动配置支持移动以下组件的配置:

  • 标记
  • 委派管理员
    • 作用域
    • 角色
  • 主机连接
    • 单个资源池
    • 管理员作用域
  • 计算机目录
    • 管理员作用域
    • 计算机
    • Remote PC Access、物理、池化、已预配、MCS、已分配
  • StoreFront
  • 交付组
    • 访问策略
    • 管理员范围关联
    • 应用程序访问策略
    • 分配策略
    • 注册/桌面策略
    • 电源计划
    • 会话延迟
    • 会话预启动
    • 重新启动计划
    • 标记
  • 应用程序组
    • 管理员范围关联
    • 交付组
    • 用户和组
  • 应用程序
    • 应用程序文件夹
    • 图标
    • 应用程序
    • 代理配置的 FTA
    • 标记
  • 组策略
  • 用户区域首选项

组件迁移顺序

此处列出了组件及其依赖关系。组件的依赖关系必须到位,才能将其导入或合并。如果缺少依赖关系,则可能会导致导入或合并命令失败。如果导入或合并失败,日志文件的 Fixups 部分会显示缺少依赖关系。

  1. 标记
    • 无预依赖关系
  2. 委派管理员
    • 无预依赖关系
  3. 主机连接
    • CvadAcSecurity.yml 中的安全信息
  4. 计算机目录
    • Active Directory 中存在的计算机
    • 主机连接
    • 标记
  5. StoreFront
  6. 交付组
    • Active Directory 中存在的计算机
    • Active Directory 中存在的用户
    • 计算机目录
    • 标记
  7. 应用程序组
    • 交付组
    • 标记
  8. 应用程序
    • 交付组
    • 应用程序组
    • 标记
  9. 组策略
    • 交付组
    • 标记
  10. 用户区域首选项

常见的必备条件

以下是自动配置正常运行所需的一些常见先决条件。这些必备条件同时在本地到云云到云的迁移中使用。

生成客户 ID、客户端 ID 和密钥

在使用自动配置开始迁移之前,您需要 Citrix Cloud 客户 ID,并且必须创建客户端 ID 和密钥才能将配置导入 Citrix Cloud。所有访问云的 cmdlet 都需要这些值。

以下步骤允许您检索客户 ID 并创建客户端 ID 和密钥。

要检索客户 ID,请执行以下操作:

  1. 登录到您的 Citrix Cloud 帐户并选择相应客户。

    客户 ID 图像 1

  2. 单击汉堡菜单,然后选择下拉菜单中的身份识别和访问管理

    客户 ID 图像 2

  3. 客户 ID 位于身份和访问管理页面上。

    客户 ID 图像 35

要检索客户端 ID密钥,请执行以下操作:

  1. 身份识别和访问管理页面上,单击 API 访问选项卡。

    客户 ID 图像 3

  2. 在该框中输入名称。此名称用于区分多个客户端 ID 和密钥。单击创建客户端以创建客户端 ID 和密钥。

    客户 ID 图像 4

  3. 成功创建客户端 ID 和密钥后,将显示以下对话框。请务必将这两个值复制到安全位置并下载包含这些信息的 .csv 文件。.csv 文件可用于创建 CustomerInfo.yml 文件。

    客户 ID 图像 5

  4. 已成功创建客户端 ID 和密钥。

    客户 ID 图像 6

将这些值置于安全位置,并仅与需要访问该工具或访问云 REST API 的受信任公司成员共享。客户端 ID 和密钥不会过期。如果它们被盗用,请立即使用垃圾桶图标将其删除,然后创建新的客户端 ID 和密钥。

注意:

密钥在丢失或忘记的情况下无法找回;必须创建新的客户端 ID 和密钥。

填充客户信息文件

使用 CustomerInfo.yml 文件无需在执行每个 cmdlet 时提供客户信息参数。使用 cmdlet 参数可以覆盖任何客户信息。

通过使用 New-CvadAcCustomerInfoFile cmdlet 来创建 CustomerInfo.yml 文件。

重要:

请勿手动编辑 CustomerInfo.yml 文件。这样做可能会导致出现意外的格式错误。

New-CvadAcCustomerInfoFile 具有以下必需参数。

  • CustomerId – 客户的 ID。
  • ClientId – 客户的客户端 ID(在 Citrix Cloud 上创建)。
  • Secret – 客户的密钥(在 Citrix Cloud 上创建)。

New-CvadAcCustomerInfoFile -CustomerId markhof123 -ClientId 6813EEA6-46CC-4F8A-BC71-539F2DAC5984 -Secret TwBLaaaaaaaaaaaaaaaaaw==

还可以使用指向下载的 security.csv 文件的 SecurityCsvFileSpec 参数创建 CustomerInfo.yml。还必须指定 CustomerId。

New-CvadAcCustomerInfoFile -SecurityCsvFileSpec C:\Users\my_user_name\downloads/security.csv -CustomerId markhof123

通过使用 Set-CvadAcCustomerInfoFile cmdlet 来更新 CustomerInfo.yml 文件。此 cmdlet 只会更改客户端 ID。

Set-CvadAcCustomerInfoFile -ClientId C80487EE-7113-49F8-85DD-2CFE30CC398E

下面是一个示例 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 文件手动对其进行映射。如果区域名称与现有资源位置名称未关联,则可能会发生导入失败。

对于只有一个区域的本地站点和只有一个资源位置的云站点,自动配置工具可以进行正确的关联,这样将无需手动管理 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

注意:

冒号与资源位置名称之间必须有一个空格。如果区域或资源位置名称中使用空格,请将名称用引号引起。

主机连接

可以使用自动配置导出和导入主机连接及其关联的虚拟机管理程序。

向主机连接添加虚拟机管理程序需要特定于虚拟机管理程序类型的安全信息。出于安全考虑,无法从本地站点导出此信息。您必须手动提供该信息,以便自动配置能够成功地将主机连接和虚拟机管理程序导入云站点。

导出过程会在 %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
    • 应用程序机密
  • Amazon Web Services
    • 服务帐户 ID
    • 应用程序机密
    • 地理区域

特殊安全注意事项

所有安全信息都以明文形式输入。如果不建议使用明文,则可以使用管理 > 完整配置界面手动创建主机连接和关联的虚拟机管理程序。主机连接和虚拟机管理程序名称必须与其本地主机连接和虚拟机管理程序名称完全相同,以便成功导入使用主机连接的计算机目录。

激活站点

本地站点和云站点中的 Delivery Controller 可以控制诸如代理桌面、应用程序和重新启动计算机等资源。当一组常见的资源由两个或更多站点控制时会出现问题。从本地站点迁移到云站点时,可能会发生这种情况。本地 Delivery Controller 和云端 Delivery Controller 都可以管理相同的一组资源。这种双重管理可能会导致资源变得不可用和无法管理,并且可能难以诊断。

站点激活允许您控制活动站点的控制位置。

使用交付组维护模式管理站点激活。当站点处于非活动状态时,交付组将处于维护模式。对于处于活动状态的站点,将从交付组中删除维护模式。

站点激活不会影响或管理 VDA 注册或计算机目录。

  • Set-CvadAcSiteActiveStateCloud
  • Set-CvadAcSiteActiveStateOnPrem

所有 cmdlet 都支持 IncludeByNameExcludeByName 过滤。此参数允许您选择哪些交付组可以更改其维护模式。可以根据需要有选择地更改交付组。

将控制权导入和转移到云

下面是关于如何将控制权从本地站点导入和转移到云站点的高级说明。

  1. 将本地站点导出并导入到云中。确保任何导入 cmdlet 上都不存在 –SiteActive 参数。本地站点处于活动状态,云站点处于非活动状态。默认情况下,云站点交付组处于维护模式。
  2. 验证云内容和配置。
  3. 在空闲时间,将本地站点设置为非活动状态。–SiteActive 参数必须不存在。所有本地站点交付组都处于维护模式。
    • Set-CvadAcSiteActiveStateOnPrem
  4. 将云站点设置为活动状态。–SiteActive 参数必须存在。没有云站点交付组处于维护模式。
    • Set-CvadAcSiteActiveStateCloud –SiteActive
  5. 验证云站点是否处于活动状态且本地站点处于非活动状态。

将控制权转移回本地站点

要将控制权从云站点转移到本地站点,请执行以下操作:

  1. 在空闲时间,将云站点设置为非活动状态。所有云站点交付组都处于维护模式。
    • Set-CvadAcSiteActiveStateCloud
  2. 将本地站点设置为活动状态。没有本地站点交付组处于维护模式。
    • Set-CvadAcSiteActiveStateOnPrem -SiteActive

其他站点激活信息

  • 如果没有计算机进行电源管理且没有重新启动计划(这通常表示没有主机连接),则可以将所有云交付组导入为活动状态。向 Merge-CvadAcToSite/Import-CvadAcToSite 中添加 -SiteActive 或导入后运行 Set-CvadAcSiteActiveStateCloud -SiteActive
  • 如果计算机受到电源管理或者有重新启动计划,则需要不同的过程。例如,在这种情况下从本地切换到云时,使用 Set-CvadAcSiteActiveStateOnPrem 将本地站点设置为非活动状态。然后,使用 Set-CvadAcSiteActiveStateCloud -SiteActive 将云站点设置为活动状态。
  • Set-CvadAcSiteActiveStateCloudSet-CvadAcSiteActiveStateOnPrem cmdlet 也用于反转该过程。例如,先运行不带 -SiteActive 参数的 Set-CvadAcSiteActiveStateCloud,然后再运行带 -SiteActive 参数的 Set-CvadAcSiteActiveStateOnPrem

了解迁移 Machine Creation Services 预配的目录

注意:

此功能仅在 3.0 及更高版本中提供。在自动配置中使用 Get-CvadAcStatus 检查您的版本。

Machine Creation Services (MCS) 目录创建两种不同类型的目录:

  • 当对计算机所做的更改丢失/撤销时(通常是在其中发布应用程序的服务器操作系统)- 这是一个池 VDI/多会话用例
  • 在重新启动过程中保留对计算机所做的更改时(通常为具有专有用户的客户端操作系统)- 这是一个静态 VDI 用例

可以在 Citrix Studio 的目录节点中确认目录类型,然后查看目录的“用户数据:”值。

注意:

无法使用自动配置从云中备份 MCS。

池 VDI/多会话目录

包含“用户数据: 丢弃”的目录是池 VDI 目录,只能迁移主映像和配置。不会迁移这些目录中的任何虚拟机。这是因为虚拟机的生命周期由您从中导入的站点进行维护,这意味着每次打开计算机时,其状态都可能会发生变化。这将导致无法导入,因为虚拟机的导入数据很快就会失去同步。

使用该工具迁移这些目录时,它会创建目录元数据并启动主映像创建,但不会导入任何计算机。

由于根据主映像的大小创建此过程可能需要一些时间,因此该工具中的导入命令只会启动 MCS 目录的创建过程,而不会等待创建完成。导入完成后,在云部署中使用“完整配置”管理界面监视目录创建进度。

创建主映像后,可以预配计算机。需要考虑容量注意事项,因为本地使用时会消耗容量。

使用该目录的所有其他对象(交付组/应用程序/策略等)都可以导入,而不必等待主映像创建。目录创建完成后,可以将计算机添加到导入的目录中,用户之后可以启动其资源。

注意:

使用该工具中可用的相同命令迁移目录以及所有其他对象。

静态 VDI 目录

注意:

由于此操作会导入存储在数据库中的低级别详细信息,因此必须从具有数据库访问权限的计算机运行此过程。

静态 VDI 目录迁移主映像、配置和所有虚拟机。与池 VDI 用例不同,不需要创建任何映像。

VDA 必须指向连接器才能在云中注册。

请参阅激活站点部分以使云站点处于活动状态,以便重新启动计划、电源管理和其他项目由云控制。

迁移完成后,如果要从本地站点删除此目录,则必须选择退出 VM 和 AD 帐户。否则,它们将被删除,云站点将指向已删除的 VM。

更新 MCS 标签以在迁移后检测孤立资源

从本地配置迁移到云站点,或从云配置迁移到另一个云站点后,如果是永久虚拟机,则必须更新 MCS 站点 ID 标记,这样才能正确检测孤立资源。要执行此操作,请使用 PowerShell 命令 Set-ProvResourceTags。目前,此功能适用于 Azure。

详细步骤如下所示:

  1. 使用 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,则更新该计算机目录中所有虚拟机的标签。
  • VMBatchSize 是将所有虚拟机分成批的可选参数。如果未指定 VMBatchSize,则应用默认值 (10)。范围在 1 到 60 之间。
  • ResourceType 可以是以下之一:

    • MachineCatalog:用于更新计算机目录资源的标签。
    • VirtualMachine:用于更新虚拟机相关资源的标签。
    • All:(默认资源类型):用于更新计算机目录和虚拟机相关资源的标签。