Azure DevOps Server 2022 |Azure DevOps Server 2020 |Azure DevOps Server 2019 |TFS 2018

可以将项目集合从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的任何部署,但源自该集合的部署除外。

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

  • 在承载要移动的集合的服务器上打开 Azure DevOps 的管理控制台,并在 Project Collections 中突出显示该集合。

  • 在“ 常规 ”选项卡上,选择“ 分离集合 ”。

    你只可以将数据库还原到相同或更新版本的 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部署。 如果要移动到的部署使用报告,则为正在附加的集合生成报告文件夹和默认报表,作为过程的一部分。

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

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

    5. 配置移动的项目集合

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

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

    配置移动的集合

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

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

    6. 配置项目

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

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

    将用户添加到项目

  • 有关此任务的信息,请参阅 将用户添加到项目
  • 将资源添加到已移动的项目

  • 有关此任务的详细信息,请参阅 配置资源以支持项目
  • 问:我的Azure DevOps Server部署使用报告。 如何在移动集合时移动报表?

    答: 首先,需要保存或导出要从支持其原始部署中集合的报表服务器移动的任何报表。 然后你将需要将每个报表手动上载到报表服务器,此服务器将支持移动后的集合,这可能是一个很长的过程。 请考虑你是否需要上载所有报表,或者报表子集能否满足你的业务需求。 你不必上载所有报表或任何报表,但是,在移动过程完成之后,只能使用已上载的报表。

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

  • 导出或保存要从报表服务器移出的报表,此服务器在其原始部署中支持集合。 有关详细信息,请参阅 导出报表 保存报表

  • 在报表管理器中,将每个要移动的报表上载到报表服务器上的相应文件夹,此服务器在其新环境中支持集合。

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

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

    重新生成数据仓库和分析服务

  • 打开 Azure DevOps 的管理控制台。

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

  • 报表 中,选择“ 开始重新生成 ”。

  • 在“ 重新生成仓库和分析服务数据库 ”对话框中,选择“ 确定 ”。

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

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

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

    移动完成后:

  • 可以创建多个部署池。 可以使用 TfsConfig 命令合并重复池。 例如: TfsConfig.exe deploymentpool /migrateDeploymentGroups /fromPool:<Source Pool Name> /toPool:<Target Pool Name>
  • 需要使用新的部署池重新配置代理。 下面是参考的示例 部署代理重新配置脚本
  • 在移动集合之前删除实验室管理资源

  • 有关如何从指定项目集合中删除所有组主机、库共享和环境的信息,请参阅具有 /External 选项的 TFSConfig Lab /Delete 命令
  • 移动集合后配置实验室管理资源

  • 为 Azure DevOps 配置应用程序层。

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

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

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

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

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

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

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

  •