如何安装 Azure DevOps 代理服务器并设置远程站点

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

如果你在远程站点上具有可与主站点上的开发人员共享代码的开发人员,则可以通过在远程位置上缓存版本控制文件来节约带宽。 Azure DevOps 代理服务器从远程站点的缓存中分发常用的版本控制文件,而不是让远程站点上的多个开发人员分别从main站点下载相同的文件。 远程站点上的团队的工作方式与往常一样,但不管理向该缓存中加载哪些版本控制文件。

若要设置此内容,请在远程站点上安装和配置代理服务器、将该代理服务器连接到应用层,然后将团队资源管理器的版本控制功能连接到该代理。 必须先将代理服务器的服务帐户添加到main站点Azure DevOps Server,然后才能开始在远程站点中缓存文件。

Azure DevOps 代理服务器

在远程站点中缓存版本控制文件

步骤 任务 详细说明
步骤 1 检查支持的硬件和软件。 验证操作系统是否满足 Azure DevOps 代理服务器的要求,以及硬件是否可以运行它。 Azure DevOps 代理服务器的系统要求
步骤 2 设置 Azure DevOps 代理服务器。 安装 Azure DevOps 代理服务器。 安装完成后,使用 Azure DevOps Server Configuration Center 配置代理服务器。 运行Azure DevOps Server安装
使用 Azure DevOps Server 配置中心配置 Azure DevOps 代理服务器
步骤 3 将团队资源管理器连接到 Azure DevOps 代理服务器。 将代理服务器配置为连接到Azure DevOps Server后,必须将团队资源管理器配置为通过代理服务器访问版本控制文件。 配置 Team Foundation 版本控制以使用代理服务器

配置 Azure DevOps 代理服务器

可以使用以下过程通过配置中心Azure DevOps Server配置 Azure DevOps 代理服务器。

注意

可以从“开始”菜单访问 Azure DevOps Server Configuration Center,方法是启动Azure DevOps Server管理控制台,选择“代理服务器”,然后选择“配置已安装的功能”。

先决条件

若要遵循此过程,必须具有以下权限级别:

  • 要在其中配置 Azure DevOps 代理服务器的服务器上的管理员安全组的成员身份。

  • Azure DevOps Server上的“项目集合管理员”组中的成员身份。

  • 对于Azure DevOps Services需要是集合管理员,或者对代理命名空间拥有管理代理权限。 可以使用以下方法授予代理权限:

    tfssecurity /a+ Proxy Proxy Manage <user account> ALLOW /collection:{collection url}
    

    注意

    必须具有 TFS Update 2 或更高版本中的代理服务器才能使用上述命令。

若要配置 Azure DevOps 代理服务器,必须在服务器操作系统上安装Azure DevOps Server。 有关详细信息,请参阅Azure DevOps Server的系统要求

配置 Azure DevOps 代理服务器

若要使用 Azure DevOps Server 配置中心配置 Azure DevOps 代理服务器,请执行以下步骤:

  1. 选择“ 配置 Azure DevOps 代理服务器”,然后选择“ 启动向导”。

    此时会显示 Azure DevOps 代理服务器配置 向导。

  2. 阅读“欢迎”屏幕,然后选择“ 下一步”。 如果你已在此服务器上设置某个版本的 TFS 2013 代理(此功能仅适用于 TFS 2013 代理及较早版本),则系统将提示你还原设置。 如果要使用不同的资源配置此代理服务器,请选择“ ”,然后转到下一步。 如果要将代理连接到同一Azure DevOps Server服务器,请选择“”。 Azure DevOps Server将尝试进行身份验证。 如果Azure DevOps Server成功对所有终结点进行身份验证,请跳到步骤 4。

    如果存在与一个或多个终结点相关问题,则可使用以下针对每个失败连接的疑难解答选项:

    • 连接:使用此选项手动对终结点进行身份验证。 手动身份验证是一个用来开始任何失败的连接的不错的方法。

    • 跳过:使用此选项跳过身份验证。 如果还没有用于对此终结点进行身份验证的密码,并且想要保存连接信息供以后再次尝试,则跳过非常有用。

    • 删除:使用此选项可完全删除终结点。

    提示

    有关这些选项的更多详细信息,请参阅博客文章 代理升级:如何验证跳过的代理终结点

  3. 选择“ 浏览”,然后选择希望此代理服务器连接到的项目集合。 选择“下一页”。

    注意

    如果项目集合处于Azure DevOps Services,系统会提示你进行身份验证。 输入用于设置服务的 Microsoft 帐户。

  4. 在“ 服务帐户”下,选择“ 使用系统帐户 使用网络服务”或“ 使用用户帐户 使用域或本地帐户”。 如果使用用户帐户,则必须输入密码。 若要测试用户帐户和密码组合,请选择“ 测试”。

    网络服务是此代理服务器服务帐户的默认值。

  5. 以下可选配置显示在 “高级配置”下:

    • 如果已连接到托管服务,则会在此处显示 “帐户名称 ”。

      在托管服务上创建 Azure DevOps Server 实例时,会自动创建帐户名称。 此帐户将添加到托管服务上的 “项目集合代理服务帐户” 组中。 若要使用其他帐户,请输入帐户名称并选择“ 测试”。

      若要重置为自动创建的默认服务帐户,请选择“ 重置为默认服务帐户”。 这不再适用于 Azure DevOps Server 2017 Update 2 和更新的代理服务器。

    • 你可以更改身份验证设置。 在“ 身份验证方法”下,选择“ NTLM ”以使用 NTLM 身份验证,或 “协商 (Kerberos) ”以首次尝试 Kerberos 身份验证,这是更安全的选项,如果失败,请回退到 NTLM。

      NTLM 为默认值。

  6. 选择“下一页”。

  7. “端口”中,接受默认值 8081 或输入其他侦听器端口号,以便与 Azure DevOps 代理服务器建立的传入连接。

    8081 为默认值。

  8. “缓存根目录”中,接受默认值,或输入存储缓存文件的其他位置的路径。

    默认值为 Drive:\Program Files\TFS 12.0\Version Control Proxy\ _tfs_data

    驱动器 是要存储缓存文件的驱动器号。 可以指定映射的网络驱动器。

  9. 选择“下一页”。

  10. 在“审阅”页上,查看设置,然后选择“ 下一步”。

    向导将验证你的配置。

  11. 为向导选择“ 配置 ”以应用配置设置。

  12. 在成功屏幕上选择“ 下一步 ”,读取下一个成功屏幕上的详细结果。 你还将在此屏幕上找到指向日志的链接,该日志包含配置的结果。

  13. 选择“关闭”两次,将显示Azure DevOps Server管理控制台。

配置 Team Foundation 版本控制

可以将 Team Foundation 版本控制配置为使用代理服务器,该服务器在分布式团队的位置缓存版本控制文件的副本。 可以使用代理服务器降低远程开发人员的带宽要求。

若要遵循此过程,你必须是要配置团队资源管理器的计算机上的“用户”安全组的成员。

若要配置团队资源管理器以使用 Azure DevOps 代理服务器,请执行以下操作:

  1. 启动 Visual Studio。

  2. 在“工具”菜单上,选择“选项”。

  3. “选项 ”对话框中,展开“ 源代码管理”,然后选择“ 插件选择”。

  4. 对于 当前源代码管理插件,请确保值为 Visual Studio Team Foundation Server

  5. “源代码管理”下,选择“ Visual Studio Team Foundation Server”。

  6. 选择“使用代理服务器下载文件检查框。

  7. 在“ 代理服务器名称 ”框中,输入运行 Azure DevOps 代理服务器的服务器的名称。

  8. 在“ 端口 ”框中,输入 Azure DevOps 代理服务器的侦听器端口。 默认情况下,Azure DevOps 代理服务器侦听端口 8081 上的客户端请求。

问题解答

问:代理服务器是否与以前版本的 TFS 向后兼容?

:是的。 代理服务器与 TFS 2010 和 TFS 2012 完全兼容。 事实上,TFS Proxy 2010、TFS Proxy 2012 和代理服务器在任意组合中彼此完全兼容。 例如,可以将 TFS Proxy 2010 与代理服务器一起使用,反之亦然。

问:是否有任何版本的 Azure DevOps 代理服务器具有缓存清理改进,以支持大于 1 TB 的磁盘?

:是的。 代理服务器进行了缓存清理改进,以支持大型磁盘。

问:代理服务器是否具有损坏检测逻辑?

:是的。 如果存储缓存的文件在磁盘上损坏,则代理服务器具有检测损坏的逻辑。

问:代理服务器是否完全支持针对 dev.azure.com 缓存?

:是的。

问:从一个版本的 Azure DevOps 代理服务器升级到另一个版本时,代理缓存会发生什么情况?

:如果从早期版本的 Azure DevOps 代理服务器或 TFS 代理服务器升级,则会在升级期间保留缓存。 你将能够立即从远程位置继续访问Azure DevOps Server,而不会影响性能,因为Azure DevOps Server不需要重新创建或重新填充缓存。