移动项目集合

Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019

可以将项目集合从 Azure DevOps Server 的一个部署移到另一个部署。 例如:

  • 组织中有多个 Azure DevOps Server 部署,并且想要将集合移动到另一个部署,以便更好地满足业务需求。
  • 你想要将集合移动到具有自己部署 Azure DevOps Server 的远程办公室。
  • 想要通过向其添加另一个 SQL Server 实例来扩展 Azure DevOps Server 的部署,并且想要在实例之间分发现有集合。
  • 需要从运行早期版本的 Azure DevOps Server 部署中分离单个项目集合,然后将其移动到运行当前版本的 Azure DevOps Server 的服务器来增量升级部署。 (其中一个常见原因是,某些团队可能需要迁移到较新版本的 Azure DevOps Server,而另一些团队出于工具或项目原因必须保留在较旧版本中。在此方案中,还必须使用“配置功能”向导升级集合中的每个项目。 有关详细信息,请参阅 Azure DevOps Server 升级后配置功能。 Azure DevOps Server 2019 已弃用“配置功能”向导。 只能在 TFS 2018 及更早版本上运行该向导。 Azure DevOps Services 上定义的项目会随每个服务升级自动更新。

移动集合的步骤将取决于托管集合的部署的特定配置以及将集合移动到的部署。 例如,如果将集合移动到新域,则需要将用户从该域添加到集合级别和项目级别的相应组。

下面介绍如何移动整个项目集合。 若要移动集合的一部分,请参阅 拆分项目集合

先决条件

在开始移动之前,请确保你是服务器和软件上的管理员,并且是你正在移动的部署所使用的软件,以及要移动到的部署。 如果你不是管理员, 请将其添加为一个管理员。

1. 分离集合

在移动集合之前,请先将其与运行集合的 Azure DevOps Server 部署分离。 不跳过此步骤非常重要。 分离集合时,将停止所有作业和服务,然后停止集合数据库。 此外,分离过程会从配置数据库复制集合特定的数据,并将其保存为项目集合数据库的一部分。 此配置数据允许将集合数据库附加到 Azure DevOps Server 的不同部署。 如果该数据不存在,则无法将集合附加到 Azure DevOps Server 的任何部署,但源自该集合的部署除外。

注意

分离集合可防止用户访问该集合中的任何项目。

  1. 在承载要移动的集合的服务器上打开 Azure DevOps 的管理控制台,并在项目集合突出显示该集合。

  2. “常规 ”选项卡上,选择“ 分离集合”。

    分离项目集合

    此时会 打开“分离项目集合向导 ”。

  3. (可选) 在“提供项目集合 ”页的服务消息中,在 “服务消息”中,为可能尝试连接到此集合中的项目的用户提供一条消息。

  4. 选择下一步

  5. 在将用于分离项目集合页的“审阅”设置中,查看详细信息。

  6. 若要更改任何设置,请选择“ 上一页”。 如果它们看起来正确,请选择“ 验证”。

  7. 所有就绪情况检查都成功完成后,选择“ 分离”。

  8. “监视项目集合分离进度 ”页上,完成所有进程后,选择“ 下一步”。

    向导显示进度

  9. (可选)在“ 查看此项目集合 ”页的补充信息上,选择或记下日志文件的位置。

  10. 选择“关闭”。

    项目集合不再显示在管理控制台中的集合列表中。

    TFS 管理控制台不显示已分离

2. 备份集合数据库

分离集合后,备份其数据库以将其移动到另一个服务器。 若要执行此任务,请使用 SQL Server 中提供的工具。

“连接”窗格的屏幕截图,其中选择了以下选项:FABRIKAM2014 > Tfs_TestProjects > “任务 > 备份”。

重要

只能将数据库还原到同一版本或较新版本的 SQL Server。 不能将 SQL Server 数据库还原到产品的早期版本
(如果原始部署使用了 SQL Server 企业版或数据中心版)并且想要将数据库还原到运行标准版的服务器,则必须使用禁用 SQL Server 压缩的备份集。 除非禁用数据压缩,否则将无法将企业版或数据中心版数据库还原到运行 Standard 版的服务器。 若要关闭压缩,请按照 Azure DevOps 数据库中禁用 SQL Server 数据压缩中的步骤操作。

3. 移动集合数据库

在移动集合时,必须还原、复制或将集合数据库移动到配置为支持将集合移动到的 Azure DevOps Server 部署的 SQL Server 实例。 可以选择想要移动数据库的方法。

复制数据库向导的欢迎页的屏幕截图。

有关将数据库移动到 SQL Server 的另一个实例的详细信息,请参阅:

4.附加集合

还原集合数据库后,可以将集合附加到 Azure DevOps Server 的首选部署。 如果要移动到的部署使用报告,将为作为过程的一部分附加的集合生成报告文件夹和默认报表。

  1. 在承载要移动到集合的部署的应用程序层的服务器上打开 Azure DevOps 的管理控制台。

  2. 选择 项目集合,然后选择“ 附加集合”。

    Azure DevOps Server 管理控制台、团队项目集合

    此时会打开“ 附加项目集合向导 ”。

  3. 在“选择要附加的项目集合数据库”页上的 SQL Server 实例,提供服务器的名称和承载集合数据库的实例(如果尚未列出)。

    确保 SQL Server 实例正确

  4. “数据库” 列表中,选择要附加的集合数据库,然后选择“ 下一步”。

  5. “输入项目集合信息”页上,在“名称”中提供集合的名称(如果尚不存在)。

  6. (可选)在“说明”,提供集合的说明。

  7. 选择下一步

  8. 在将用于附加项目集合页的“审阅”设置中,查看信息。

  9. 若要更改任何设置,请选择“ 上一页”。 如果所有设置都正确,请选择“ 验证”。

  10. 所有就绪情况检查都成功完成后,选择“ 附加”。

  11. 在“ 监视项目集合附加进度 ”页上,完成所有进程后,选择“ 下一步”。

  12. (可选) 在“查看此项目集合 ”页的补充信息上,选择或记下日志文件的位置。

  13. 选择“关闭”。

    项目集合显示在管理控制台中的集合列表中。

    如果配置未完成,请停止收集

5. 配置移动的项目集合

如果在同一域中移动了集合,并且打算使用以前支持该集合的同一 Web 应用程序,并且希望允许该集合的管理员访问此 Azure DevOps Server 部署,则可以跳过此过程。

移动集合后,请使用相应的设置更新该集合的 Web 应用程序和权限组。

配置移动集合

  • 打开项目集合的每个选项卡,如有必要,请修改设置以反映服务和位置,以匹配当前 Azure DevOps Server 上资源的位置。 对于报告资源,这一点尤其重要。 如果看到错误,请确保帐户具有项目集合管理员所需的权限,并且已根据需要添加任何其他项目集合管理员。

    有关此任务的信息,请参阅 “修改项目集合 ”和 “设置项目集合的管理员权限”。

6. 配置项目

如果在同一域中移动了集合,并且希望允许该集合中的项目用户访问 Azure DevOps Server 的此部署,则可以跳过此过程。

为移动集合配置管理员后,你或这些管理员必须将用户和组添加到该集合中的项目。 根据部署,可能还需要在 Reporting Services 中为这些用户配置权限。

将用户添加到项目

将资源添加到移动的项目

问题解答

问:我的 Azure DevOps Server 部署使用报告。 如何实现移动报表以及移动集合?

答: 首先,需要保存或导出要从在其原始部署中支持集合的报表服务器移动的任何报表。 然后,需要手动将每个报表上传到支持移动集合的报表服务器,这可以是一个漫长的过程。 考虑是要上传所有报表还是一部分报表是否满足业务需求。 无需上传所有报表或任何报表,但只有在移动过程完成后,上传的报表才可用。

移动集合后,还需要在原始部署上重新生成仓库和分析服务多维数据集,因此原始部署不会继续尝试为不再存在集合生成报表。

移动报表

  1. 导出或保存要从支持集合的原始部署中的报表服务器移动的报表。 有关详细信息,请参阅 “导出报表 ”和 “保存报表”。

  2. 将要移动到报表服务器上的相应文件夹的每个报表上传到报表管理器的新环境中支持该集合的相应文件夹。

    有关详细信息,请参阅 将文件上传到文件夹

  3. 在报表管理器中,编辑每个报表以将数据源更改为新的报表服务器。

重新生成数据仓库和 Analysis Services

  1. 打开 Azure DevOps 的管理控制台。

  2. 在导航栏中,选择“ 报告”。

  3. “报告”中,选择“ 开始重新生成”。

  4. “重新生成仓库和 Analysis Services 数据库 ”对话框中,选择“ 确定”。

    注意

    仓库将完成重新生成,数据将在“开始重新生成”操作完成后完成重新填充。 根据部署的大小和数据量,整个过程可能需要几个小时才能完成。

问:如何实现移动包含部署池和/或部署组的团队项目集合?

答: 将集合移动到另一个部署时,对于源中具有分离集合中的部署组的每个部署池,会在目标实例中自动预配新的部署池。 对于 Azure DevOps Server 2019 或更高版本,自动预配的部署池的名称与源实例中的名称相同。 在以前的版本中,部署池名称的格式 <project name-deployment-group name>为 。 如果发生冲突,则会将随机 GUID 追加到部署池名称中。

移动完成后:

  • 可以创建多个部署池。 可以使用 TfsConfig 命令合并重复池。 例如: TfsConfig.exe deploymentpool /migrateDeploymentGroups /fromPool:<Source Pool Name> /toPool:<Target Pool Name>
  • 需要使用新的部署池重新配置代理。 下面是参考的示例 部署代理重新配置脚本

在移动集合之前删除实验室管理资源

移动集合后配置实验室管理资源

  1. 为 Azure DevOps 配置应用程序层。

    有关详细信息,请参阅 配置 SCVMM 环境的实验室管理。

  2. 在新 SCVMM 中重新创建黄金主虚拟机和模板,并将虚拟机和模板导入项目集合。

    有关详细信息,请参阅 创建和存储可供实验室管理的虚拟机和模板。

  3. 为每个项目重新创建环境。

    有关详细信息,请参阅 使用存储的虚拟机和模板创建 SCVMM 环境。

问:如何实现限制对项目中选择函数的访问?

答: 有权访问集合中的一个项目的用户可以查看该集合中的其他项目,即使他们无权修改工作项或在该项目中执行其他操作。 可以通过 专门创建组和配置对这些组的限制来授予或限制对选择项目进行创建或修改选择项目的功能和功能 的访问权限,以及限制它们查看项目。