Azure DevOps Server 2022 |Azure DevOps Server 2020 |Azure DevOps Server 2019
本文介绍如何将 Azure DevOps Server 部署从一个环境移到另一个环境,例如更改域名或从工作组移动到域。 当组织重组其 IT 基础结构、更新域名或合并资源时,基于环境的移动很常见。
可以找到有关准备部署、更新权限和帐户、停止服务、备份数据、加入新域、迁移用户和服务帐户、配置报告和分析服务、更新备份计划以及重启服务的分步指南。
更改 Azure DevOps Server 的环境需要仔细规划,尤其是在帐户和标识管理周围,以避免冲突并确保顺利过渡。 本文提供了最佳做法和详细说明,可帮助你成功完成移动。
重要
在某些情况下,可能需要更改 Azure DevOps Server 部署及其硬件的域。 更换硬件是一种基于还原的操作,并且不应将这两种操作类型合并。 首先完成 硬件移动,然后更改环境。
在环境移动过程中更改 Azure DevOps Server 中的标识是最常导致冲突或问题的方面。 Identities 命令是一个功能强大的工具,但它具有某些限制。 在规划搬家时,阅读相关信息作为准备的一部分。 为了帮助确保顺利搬迁,请确保了解以下要求:
- 在 Azure DevOps Server 中存在用户帐户后,无法删除该帐户或将另一个帐户映射到该帐户。 例如,如果要将 DomainA/UserA 移动到 DomainB/UserB,则只有在 Azure DevOps Server 中尚不存在 DomainB/UserB 时,Identities 命令才能迁移用户。
- 由于本地管理员组的成员会自动添加到 Azure DevOps Server,因此在更改域或环境之前,请确保删除要从该组迁移的任何帐户。
有关其他背景信息,请参阅 此博客文章。
1.检查权限和帐户
若要更改 Azure DevOps Server 的环境,请以本地计算机、Azure DevOps Server、SQL Server、报告和其他任何依赖软件(如 Project Server)的管理员身份登录。 避免使用计划迁移的帐户,因为本地管理员组的成员会自动添加到 Azure DevOps Server,这可能会导致迁移问题。 使用专用的管理帐户进行移动,以防止冲突。
验证管理员级权限
- 确保使用的帐户是以下组的成员:
- 服务器管理员(本地管理员组或等效组)
- Azure DevOps Server:Team Foundation 管理员和管理控制台用户
- SQL Server:sysadmin
如果你不是其中一个或多个组的成员, 请立即获取权限。
确认帐户具有所有必要的权限后,请检查目标环境中是否存在与帐户或组名称的潜在冲突。 由于无法迁移本地 Administrators 组中的帐户,因此在继续作之前,请删除计划从该组迁移的任何帐户。
删除要从本地管理员组迁移的帐户
打开本地管理员组并删除计划迁移到新环境的任何帐户。 对可能受到影响的任何其他组重复此过程。
接下来,查看当前 Azure DevOps Server 环境中的标识列表。 确定与新环境中可能已存在的组或用户帐户的任何潜在冲突。
小提示
创建需要迁移的身份表或迁移地图。 包含无法自动迁移的帐户的详细信息,以帮助跟踪和解决移动过程中的问题。
检查身份
在 Azure DevOps 的应用程序层服务器上,打开具有管理权限的命令提示符窗口,导航到 %ProgramFiles%\Microsoft Visual Studio 12.0 Team Foundation Server\Tools,并运行以下命令以查看系统中当前存在的标识:
TFSConfig Identities
将显示标识列表。
- 在移动 Azure DevOps Server 之前,查看用户和组以识别目标环境中的任何重复或冲突标识。 解决任何潜在的冲突,以确保顺利迁移。
2. 停止服务
停止服务可防止用户在移动过程中或之后对工作项进行更改或签入源代码到原始部署。
在应用程序层计算机上打开命令提示符窗口,并将目录更改为
Drive:\\%programfiles%\\TFS 12.0\\Tools
。输入以下 TFSServiceControl 命令:
TFSServiceControl quiesce
3.备份数据库和 SQL Server Reporting Services 加密密钥
打开 Azure DevOps Server 的管理控制台,并转到 “计划备份 ”页。 执行完整备份,立即备份计划中指定的所有内容。 如果部署使用报告,请在此备份集中包括加密密钥。
注释
如果从未配置备份,请在执行完整备份之前 创建备份计划 。
备份完成后,确认备份在存储设备或网络共享上可用,并验证是否可以从新硬件访问备份。
4.将应用程序层服务器加入其新域
在每个服务器上,打开计算机属性。
更改计算机的设置以加入所需的域或工作组。
如果出现提示,请输入有权将计算机加入域的帐户的凭据。
重启计算机以应用域更改。
注释
重启后,你可能会看到一条警告,指出某些服务或驱动程序无法启动。 可以安全地继续执行下一过程。
5. 移动用户帐户和服务帐户
迁移帐户通常是更改环境最具挑战性的部分,尤其是在未仔细规划用户迁移的情况下。 TFSConfig Identities 命令无法将帐户迁移到 Azure DevOps Server 中已存在的目标帐户。
如果这两个域中的帐户名称相同(只有域名不同),则可以使用 TFSConfig 标识的批处理模式一次性更新所有标识。 如果帐户名称在环境之间不同,则必须单独更新每个标识并指定新的目标帐户名称,如下所示。
在 Azure DevOps 的应用程序层服务器上,打开具有管理权限的命令提示符窗口。 导航到 %ProgramFiles%\Microsoft Visual Studio 12.0 Team Foundation Server\Tools,然后运行以下命令将服务帐户的 SID 更新到新域:
TFSConfig identities /change /fromdomain:OldComputerorDomainName /todomain:NewDomainName /account:OldTFSServiceAccount /toaccount:NewTFSServiceAccount
警告
如果服务帐户是系统帐户(如网络服务),则无法直接迁移它,因为新环境中存在同名的系统帐户。 需要遵循两个阶段的过程。 请参阅 Identities 命令中的示例。
若要在新环境中迁移具有相同名称的所有帐户,请运行:
TFSConfig Identities /change /fromdomain:OldDomainName /todomain:NewDomainName
此命令批处理帐户。
如果您的新域中包含在不同环境下名称不同的标识,请为每个标识手动更新 SID。 例如,如果 Christie Church 的帐户在旧环境中是 Fabrikam\CChurch,并且是新环境中的 NewFabrikam\ChristieC,请按如下所示更新其 SID:
TFSConfig Identities /change /fromdomain:OldDomainName /todomain:NewDomainName /account:OldAccountName /toaccount:NewAccountName
通过运行以下命令更新服务帐户:
TFSConfig Accounts /change /AccountType:ApplicationTier /account:AccountName /password:Password
如果部署使用报告,请更新数据源帐户:
TFSConfig Accounts /change /AccountType:ReportingDataSource /account:AccountName /password:Password
如果部署使用 Azure DevOps 代理服务器,请更新代理服务帐户:
TFSConfig Accounts /change /AccountType:Proxy /account:AccountName /password:Password
注释
如果要迁移到不受信任的域,则可能需要手动将用户和组添加到团队、项目、集合和 Azure DevOps Server 本身。 有关详细信息,请参阅 “将用户添加到项目”、“ 为项目集合设置管理员权限”和 “为 Azure DevOps Server 设置管理员权限”。
如果部署与 Project Server 集成,则可能需要执行其他步骤来配置具有所需权限的服务帐户。 有关详细信息,请参阅 分配权限以支持 TFS-Project Server 集成 和 配置 TFS-Project Server 集成。
6. 配置报表和分析服务
如果部署不使用报告,请跳过此过程。
如果在移动过程中重命名了报表服务器,请将 Azure DevOps Server 更新为指向新的报表服务器位置。 还需要重启仓库并手动重新生成 Analysis Services 数据库。
打开 Azure DevOps 的管理控制台,转到 “报告 ”节点,然后编辑设置。
更新所有三个选项卡上的值以反映新的服务器名称。 确保为新环境输入正确的数据源帐户信息。
选择“ 启动作业 ”以重启报告。
选择 “开始重新生成 ”以重新生成仓库。
7. 配置备份
如果在域名更改期间更改了网络共享名称或存储设备,请更新计划的备份计划以引用新资源。
在管理控制台中,转到 “计划备份 ”节点,并重新配置计划备份,以在新服务器上备份 Azure DevOps Server 数据库。 有关详细信息,请参阅 创建备份计划和计划。
8.重启服务
现在,你已使用新环境的所有信息更新了 Azure DevOps Server,若要重启服务,请执行以下步骤:
在 Azure DevOps Server 应用程序层计算机上,打开具有管理权限的命令提示符窗口,并将目录更改为 Drive:\%programfiles%\TFS 12.0\Tools。
输入以下 TFSServiceControl 命令:
TFSServiceControl unquiesce
常见问题(FAQs)
问:我想更改部署的物理服务器或服务器,而不是域。 我是否可以执行此操作?
答: 是的,这种操作称为基于硬件的移动,详细步骤见硬件之间的移动或克隆。 不应尝试将基于环境的移动与基于硬件的移动相结合。 首先完成硬件移动,然后更改环境。