Self-hosted Windows agents(自托管 Windows 代理)

Azure DevOps Services |Azure DevOps Server 2022 - Azure DevOps Server 2019 |TFS 2018

若要生成和部署 Windows、Azure 和其他 Visual Studio 解决方案,至少需要一个 Windows 代理。 Windows 代理还可以生成 Java 和 Android 应用。

开始之前:

了解代理

如果已知道代理是什么及其工作原理,请随时直接跳转到以下部分。 但是,如果想要更多有关它们执行的操作及其工作原理的背景,请参阅 Azure Pipelines 代理

检查先决条件

确保计算机具有以下先决条件:

  • 如果使用客户端 OS) ,Windows 7 SP1 ESU、8.1、10 或 11 (
  • 如果使用服务器 OS) ,则 Windows 2012 或更高版本 (
  • PowerShell 3.0 或更高版本
  • .NET Framework 4.6.2 或更高版本

重要

从 2019 年 12 月开始,生成代理所需的最低 .NET 版本为 4.6.2 或更高版本。

建议:

如果要从 Subversion 存储库生成,则必须在计算机上安装 Subversion 客户端

首次应手动运行代理安装程序。 在了解代理的工作原理或想要自动设置许多代理后,请考虑使用 无人参与的配置

硬件规格

代理的硬件规格因需求、团队大小等而异。无法提出将适用于每个人的一般建议。 作为参考点,Azure DevOps 团队使用利用 托管代理的管道生成托管代理代码。 另一方面,大部分 Azure DevOps 代码是由运行 4 台自承载代理的 24 核服务器类计算机构建的。

准备权限

自承载代理的信息安全

配置代理的用户需要池管理员权限,但运行代理的用户不需要。

代理控制的文件夹应限制为尽可能少的用户,并且它们包含可以解密或外泄的机密。

ADO 管道代理是一种软件产品,旨在执行从外部源下载的代码。 它本质上可能是远程代码执行 (RCE) 攻击的目标。

因此,请务必考虑管道代理的每个单独使用的威胁模型来执行工作,并确定可以向运行代理的用户授予哪些最低权限、代理运行的计算机、对对管道定义具有写入访问权限的用户、存储 yaml 的 git 存储库的用户, 或控制对新管道池的访问权限的用户组。

最好是让运行代理的标识不同于有权将代理连接到池的标识。 生成凭据的用户 (和其他代理相关的文件) 不同于需要读取凭据的用户。 因此,仔细考虑授予代理计算机本身的访问权限以及包含敏感文件的代理文件夹(例如日志和项目)更安全。

仅对运行代理进程的 DevOps 管理员和运行代理进程的用户标识授予对代理文件夹的访问权限是有意义的。 管理员可能需要调查文件系统以了解生成失败或获取日志文件才能报告 Azure DevOps 故障。

确定要使用的用户

作为一次性步骤,必须注册代理。 有权 管理代理队列 的人员必须完成这些步骤。 代理不会在日常操作中使用此人的凭据,但需要他们才能完成注册。 详细了解 代理的通信方式

使用个人访问令牌进行身份验证 (PAT)

  1. 使用计划在 Team Foundation Server Web 门户中使用的用户帐户登录 (https://{your-server}:8080/tfs/) 。
  1. 使用计划用于Azure DevOps Server Web 门户的用户帐户登录, (https://{your-server}/DefaultCollection/) 。
  1. 使用计划在 Azure DevOps 组织 (https://dev.azure.com/{your_organization}) 中使用的用户帐户登录。
  1. 在主页中,打开个人资料。 转到安全详细信息。

    转到安全详细信息。

  2. 创建个人访问令牌

    创建个人访问令牌。

  1. 在主页中,打开用户设置,然后选择“个人访问令牌”。

    转到安全详细信息。

  2. 创建个人访问令牌

    创建个人访问令牌。

  1. 对于范围,请选择 (读取的代理池,请管理) 并确保清除所有其他框。 如果是 部署组 代理,对于范围选择“ 部署组” (读取、管理) 并确保清除所有其他框。

    选择“创建新个人访问令牌”窗口底部的所有范围,以查看范围的完整列表。

  2. 复制令牌。 配置代理时,你将使用此令牌。

确认用户是否具有权限

确保要使用的用户帐户有权注册代理。

用户是 Azure DevOps 组织所有者还是 TFS 或Azure DevOps Server管理员? 请在此处停止,您具有权限。

否则:

  1. 打开浏览器并导航到 Azure Pipelines 组织的“代理池”选项卡,或Azure DevOps Server或 TFS 服务器:

    1. 选择 Azure DevOps组织设置

      选择“组织”设置。

    2. 选择 代理池

      选择“代理池”选项卡。

    1. 选择 Azure DevOps集合设置

      选择“集合”设置。

    2. 选择 代理池

      选择代理池。

    1. 选择 Azure DevOps集合设置

      集合设置,2019。

    2. 选择 代理池

      选择代理池 2019。

    1. 导航到项目,然后选择 “设置 ” (齿轮图标) >代理队列

      选择“设置”、“代理队列”、“2018”。

    2. 选择 “管理池”。

      选择“管理池”,2018。

  2. 选择页面右侧的池,然后单击“ 安全性”。

  3. 如果未显示要使用的用户帐户,请获取管理员添加它。 管理员可以是代理池管理员、Azure DevOps 组织所有者TFS 或Azure DevOps Server管理员

    如果是部署组代理,管理员可以是部署组管理员、Azure DevOps 组织所有者TFS 或Azure DevOps Server管理员

    可以在 Azure Pipelines“部署组”页的“安全”选项卡中将用户添加到部署组管理员角色。

注意

如果看到如下所示的消息:很抱歉,无法添加标识。请尝试其他标识。你可能已针对组织所有者或 TFS 或Azure DevOps Server管理员执行上述步骤。 无需执行任何操作;你已有权管理代理队列。

下载并配置代理

Azure Pipelines

  1. 使用已为其准备权限的帐户登录到计算机,如上所述。

  2. 在 Web 浏览器中,登录到 Azure Pipelines,并导航到 “代理池 ”选项卡:

    1. 选择 Azure DevOps组织设置

      选择“组织”设置。

    2. 选择 代理池

      选择“代理池”选项卡。

    1. 选择 Azure DevOps集合设置

      选择“集合”设置。

    2. 选择 代理池

      选择代理池。

    1. 选择 Azure DevOps集合设置

      集合设置,2019。

    2. 选择 代理池

      选择代理池 2019。

    1. 导航到项目,然后选择 “设置 ” (齿轮图标) >代理队列

      选择“设置”、“代理队列”、“2018”。

    2. 选择 “管理池”。

      选择“管理池”,2018。

  3. 选择 “默认 池”,选择“ 代理 ”选项卡,然后选择“ 新建代理”。

  4. 在“ 获取代理 ”对话框中,选择 “Windows”。

  5. 在左窗格中,选择计算机上安装的 Windows OS 版本的处理器体系结构。 x64 代理版本适用于 64 位 Windows,而 x86 版本适用于 32 位 Windows。 如果不确定安装了哪个版本的 Windows, 请按照以下说明进行了解

  6. 在右窗格中,单击“ 下载 ”按钮。

  7. 按照页面上的说明下载代理。

  8. 将代理解压缩到所选目录中。 请确保目录的路径不包含空格,因为工具和脚本并不总是正确转义空格。 建议的文件夹是 C:\agents。 在下载文件夹中提取或其他用户文件夹可能会导致权限问题。 然后运行 config.cmd。 这将询问配置代理的一系列问题。

Azure DevOps Server 2019 和 Azure DevOps Server 2020

  1. 使用已为其准备权限的帐户登录到计算机,如上所述。

  2. 在 Web 浏览器中,登录到 Azure DevOps Server 2019,并导航到“代理池”选项卡:

    1. 选择 Azure DevOps组织设置

      选择“组织”设置。

    2. 选择 代理池

      选择“代理池”选项卡。

    1. 选择 Azure DevOps集合设置

      选择“集合”设置。

    2. 选择 代理池

      选择代理池。

    1. 选择 Azure DevOps集合设置

      集合设置,2019。

    2. 选择 代理池

      选择代理池 2019。

    1. 导航到项目,然后选择 “设置 ” (齿轮图标) >代理队列

      选择“设置”、“代理队列”、“2018”。

    2. 选择 “管理池”。

      选择“管理池”,2018。

  3. 单击“下载代理”。

  4. 在“ 获取代理 ”对话框中,单击 “Windows”。

  5. 在左窗格中,选择计算机上安装的 Windows OS 版本的处理器体系结构。 x64 代理版本适用于 64 位 Windows,而 x86 版本适用于 32 位 Windows。 如果不确定安装了哪个版本的 Windows, 请按照以下说明进行了解

  6. 在右窗格中,单击“ 下载 ”按钮。

  7. 按照页面上的说明下载代理。

  8. 将代理解压缩到所选目录中。 请确保目录的路径不包含空格,因为工具和脚本并不总是正确转义空格。 建议的文件夹是 C:\agents。 在下载文件夹中提取或其他用户文件夹可能会导致权限问题。 然后运行 config.cmd。 这将询问配置代理的一系列问题。

TFS 2018

  1. 使用已为其准备权限的帐户登录到计算机,如上所述。

  2. 在 Web 浏览器中,登录到 TFS,并导航到 “代理池 ”选项卡:

    1. 导航到项目,然后选择 “设置 ” (齿轮图标) >代理队列

      选择“设置”、“代理队列”、“2018”。

    2. 选择 “管理池”。

      选择“管理池”,2018。

  3. 单击“下载代理”。

  4. 在“ 获取代理 ”对话框中,单击 “Windows”。

  5. 单击“ 下载 ”按钮。

  6. 按照页面上的说明下载代理。

  7. 将代理解压缩到所选目录中。 请确保目录的路径不包含空格,因为工具和脚本并不总是正确转义空格。 建议的文件夹是 C:\agents。 在下载文件夹中提取或其他用户文件夹可能会导致权限问题。 然后运行 config.cmd

重要

强烈建议从提升的 PowerShell 窗口配置代理。 如果要配置为服务, 则需要这样做。

重要

出于安全原因,强烈建议确保代理文件夹 (C:\agents) 只能由管理员编辑。

注意

请避免在代理配置中使用基于 mintty 的 shell,例如 git-bash。 Mintty 与本机输入/输出 Windows API 不完全兼容 (, 此处 提供了一些有关它的信息) ,在这种情况下,我们无法保证安装脚本的正确工作。

服务器 URL 和身份验证

当安装程序要求服务器 URL 时,请回答https://dev.azure.com/{your-organization}Azure DevOps Services。

当安装程序要求服务器 URL 时,对于 TFS,请回答 https://{your_server}/tfs

设置要求身份验证类型时,请选择 PAT。 然后将 创建的 PAT 令牌 粘贴到命令提示符窗口中。

注意

使用 PAT 作为身份验证方法时,PAT 令牌仅在代理的初始配置期间使用。 稍后,如果 PAT 过期或需要续订,则代理无需进一步更改。

将代理配置为连接到 TFS 时,有以下选项:

  • 互生 使用基本身份验证连接到 TFS。 选择“备用”后,系统会提示输入凭据。

  • 洽谈通过 NTLM 或 Kerberos 等Windows 身份验证方案以登录用户以外的用户身份连接到 TFS。 选择“协商”后,系统会提示输入凭据。

  • 集成 (默认) 使用登录用户的凭据通过 NTLM 或 Kerberos 等Windows 身份验证方案将 Windows 代理连接到 TFS。 选择此方法后,系统不会提示输入凭据。

  • 帕特 仅在 Azure Pipelines 和 TFS 2017 及更新版本上受支持。 选择 PAT 后,将 创建的 PAT 令牌 粘贴到命令提示符窗口中。 如果 TFS 实例和代理计算机不在受信任的域中,请使用 PAT (个人访问令牌) 。 PAT 身份验证由 TFS 实例而不是域控制器处理。

注意

使用 PAT 作为身份验证方法时,PAT 令牌仅用于代理的初始配置。 如果需要重新生成 PAT,则无需对代理进行进一步更改。

与 Azure Pipelines 或 TFS 通信中了解详细信息。

选择交互式或服务模式

有关是以交互模式还是以服务的形式运行代理的指导,请参阅 代理:交互式与服务

如果选择以服务 (运行,我们建议) ,则运行用户名应为 20 个字符或更少。

运行代理

以交互方式运行

如果将代理配置为以交互方式运行,则运行代理:

.\run.cmd

若要重启代理,请按 Ctrl+C 停止代理,然后运行 run.cmd 以重启代理。

运行一次

对于配置为以交互方式运行的代理,可以选择让代理只接受一个作业。 若要在此配置中运行,请执行以下操作:

.\run.cmd --once

此模式下的代理将只接受一个作业,然后正常地向下旋转, (适用于在服务(如 Azure 容器实例) )上运行的 Docker

作为服务运行

如果将代理配置为作为服务运行,则会自动启动。 可以从服务管理单元查看和控制代理运行状态。 运行 services.msc 并查找以下项之一:

  • “Azure Pipelines 代理 (代理的名称) ”。
  • “VSTS 代理 (代理) 的名称 ”。
  • “vstsagent. (组织名称) . (代理) 名称 ”。

若要重启代理,请右键单击该条目,然后选择 “重启”。

注意

如果需要更改代理的登录帐户,请不要从服务管理单元执行此操作。 请改为参阅以下信息以重新配置代理。

若要使用代理,请使用代理的池运行 作业 。 如果未选择其他池,代理将位于 默认 池中。

替换代理

若要替换代理,请遵循 “下载”并再次配置代理 步骤。

使用已存在的代理的名称配置代理时,系统会询问是否要替换现有代理。 如果回答 Y,请确保删除代理 (看到以下) 要替换。 否则,在发生几分钟冲突后,其中一个代理将关闭。

删除并重新配置代理

若要删除该代理,请执行以下操作:

.\config remove

删除代理后,可以 再次对其进行配置

无人参与配置

可以从脚本中设置代理,无需人工干预。 必须通过 --unattended 所有问题的答案。

若要配置代理,它必须知道组织的 URL 或有权设置代理的人员的集合和凭据。 所有其他响应都是可选的。 可以使用环境变量来指定任何命令行参数:将其名称放在大写和前面 VSTS_AGENT_INPUT_。 例如, VSTS_AGENT_INPUT_PASSWORD 而不是指定 --password

必需选项

  • --unattended - 代理设置不会提示输入信息,并且必须在命令行上提供所有设置
  • --url <url> - 服务器的 URL。 例如:https://dev.azure.com/myorganization 或 http://my-azure-devops-server:8080/tfs
  • --auth <type> - 身份验证类型。 有效值是:
    • pat (个人访问令牌) - PAT 是唯一可用于Azure DevOps Services的方案。
    • negotiate (Kerberos 或 NTLM)
    • alt (基本身份验证)
    • integrated) (Windows 默认凭据

身份验证选项

  • 如果选择 --auth pat
    • --token <token> - 指定个人访问令牌
    • PAT 是唯一可用于Azure DevOps Services的方案。
  • 如果选择 --auth negotiate--auth alt
    • --userName <userName> - 指定采用格式 domain\userName 的 Windows 用户名或 userName@domain.com
    • --password <password> - 指定密码

池和代理名称

  • --pool <pool> - 要加入的代理的池名称
  • --agent <agent> - 代理名称
  • --replace - 替换池中的代理。 如果另一个代理按同名侦听,它将开始失败并发生冲突

代理设置

  • --work <workDirectory> - 存储作业数据的工作目录。 默认为 _work 代理目录的根目录下。 工作目录由给定代理拥有,不应在多个代理之间共享。
  • --acceptTeeEula-) 仅接受 macOS 和 Linux (最终用户许可协议Team Explorer Everywhere
  • --disableloguploads - 不要流式传输或将控制台日志输出发送到服务器。 相反,可以在作业完成后从代理主机的文件系统中检索它们。

仅限 Windows 的启动

  • --runAsService - 将代理配置为作为 Windows 服务运行 (需要管理员权限)
  • --runAsAutoLogon - 配置自动登录并在启动时运行代理 (需要管理员权限)
  • --windowsLogonAccount <account> - 用于 --runAsService--runAsAutoLogon 指定格式或格式 domain\userName 的 Windows 用户名 userName@domain.com
  • --windowsLogonPassword <password> - 用于 --runAsService--runAsAutoLogon 指定 组托管服务帐户 和 Windows 内置帐户(如“NT AUTHORITY\NETWORK SERVICE”) )不需要的 Windows 登录密码 (
  • --overwriteAutoLogon - 用于 --runAsAutoLogon 覆盖计算机上的现有自动登录
  • --noRestart - 用于 --runAsAutoLogon 在代理配置完成后停止主机重启

仅部署组

  • --deploymentGroup - 将代理配置为部署组代理
  • --deploymentGroupName <name> - 用于 --deploymentGroup 指定要加入的代理的部署组
  • --projectName <name> - 用于 --deploymentGroup 设置项目名称
  • --addDeploymentGroupTags - 用于 --deploymentGroup 指示应添加部署组标记
  • --deploymentGroupTags <tags> - 用于 --addDeploymentGroupTags 指定部署组代理的逗号分隔标记列表 - 例如“web, db”

仅限环境

  • --addvirtualmachineresourcetags - 用于指示应添加环境资源标记
  • --virtualmachineresourcetags <tags> - 用于 --addvirtualmachineresourcetags 指定环境资源代理的逗号分隔标记列表 - 例如“web, db”

.\config --help 始终列出最新的必需和可选响应。

诊断

如果在自承载代理时遇到问题,可以尝试运行诊断。 配置代理后:

.\run --diagnostics

这将运行一个诊断套件,该套件可以帮助你解决问题。 诊断功能从代理版本 2.165.0 开始可用。

有关其他选项的帮助

若要了解其他选项,请执行以下操作:

.\config --help

帮助提供有关身份验证替代项和无人参与配置的信息。

功能

代理的功能在池中编录和播发,以便只为其分配可以处理的生成和发布。 请参阅 生成和发布代理功能

在许多情况下,在部署代理后,需要安装软件或实用程序。 通常,应在代理上安装任何在开发计算机上使用的软件和工具。

例如,如果生成包含 npm 任务,则除非池中安装了 npm 的生成代理,否则生成不会运行。

重要

功能包括所有环境变量以及代理运行时设置的值。 如果代理正在运行时这些值中的任何一个更改,则必须重新启动代理才能选取新值。 在代理上安装新软件后,必须重启代理,使新功能显示在池中,以便生成可以运行。

如果要将环境变量排除为功能,可以通过设置具有逗号分隔的变量列表的环境变量 VSO_AGENT_IGNORE 来指定它们。

常见问题解答

如何实现确保我有最新的 v2 代理版本?

  1. 导航到 “代理池 ”选项卡:

    1. 选择 Azure DevOps组织设置

      选择“组织”设置。

    2. 选择 代理池

      选择“代理池”选项卡。

    1. 选择 Azure DevOps集合设置

      选择“集合”设置。

    2. 选择 代理池

      选择代理池。

    1. 选择 Azure DevOps集合设置

      集合设置,2019。

    2. 选择 代理池

      选择代理池 2019。

    1. 导航到项目,然后选择 “设置 ” (齿轮图标) >代理队列

      选择“设置”、“代理队列”、“2018”。

    2. 选择 “管理池”。

      选择“管理池”,2018。

  2. 单击包含代理的池。

  3. 确保已启用代理。

  4. 导航到“功能”选项卡:

    1. “代理池 ”选项卡中,选择所需的代理池。

      从代理池中,选择所需的代理池。

    2. 选择 代理 并选择所需的代理。

      选择代理并选择代理。

    3. 选择“ 功能 ”选项卡。

      选择“功能”选项卡。

      注意

      Microsoft 托管的代理不显示系统功能。 有关 Microsoft 托管代理上安装的软件列表,请参阅 使用 Microsoft 托管的代理

    1. “代理池 ”选项卡中,选择所需的池。

      选择所需的池。

    2. 选择 代理 并选择所需的代理。

      选择代理并选择所需的代理。

    3. 选择“ 功能 ”选项卡。

      “代理功能”选项卡。

    1. “代理池 ”选项卡中,选择所需的池。

      选择所需的选项卡 2019。

    2. 选择 代理 并选择所需的代理。

      选择所需的代理 2019。

    3. 选择“ 功能 ”选项卡。

      选择“功能”选项卡,2019。

    选择所需的代理,然后选择“ 功能 ”选项卡。

    “代理功能”选项卡,2018。

  5. 查找 Agent.Version 功能。 可以根据最新的已发布代理版本检查此值。 请参阅 Azure Pipelines 代理 ,并检查列出的最高版本号页。

  6. 每个代理在运行需要较新版本代理的任务时自动更新自身。 如果要手动更新某些代理,请右键单击池,然后选择“ 更新所有代理”。

是否可以更新属于Azure DevOps Server池的 v2 代理?

能。 从 Azure DevOps Server 2019 开始,可以将服务器配置为在本地磁盘上查找代理包文件。 此配置将替代服务器发布时附带的默认版本。 当服务器无权访问 Internet 时,此方案也适用。

  1. 从具有 Internet 访问权限的计算机中,从 Azure Pipelines 代理 GitHub 发布页下载最新版本的代理包文件 (.zip或 .tar.gz 表单) 。

  2. 使用所选 ((如 USB 驱动器、网络传输等)的方法,将下载的包文件传输到每个Azure DevOps Server应用程序层) 。 将代理文件放在文件夹下 %ProgramData%\Microsoft\Azure DevOps\Agents

  3. 你已全部设置! 每当更新代理时,Azure DevOps Server都将使用本地文件。 每个代理在运行需要较新版本代理的任务时自动更新自身。 但是,如果要手动更新某些代理,请右键单击该池,然后选择“ 更新所有代理”。

我正在运行防火墙,我的代码在 Azure Repos 中。 代理需要与哪些 URL 通信?

如果在防火墙后面的安全网络中运行代理,请确保代理可以启动与以下 URL 和 IP 地址的通信。

域 URL 说明
https://{organization_name}.pkgs.visualstudio.com 使用域的组织使用 {organization_name}.visualstudio.com Azure DevOps 打包 API
https://{organization_name}.visualstudio.com 对于使用 {organization_name}.visualstudio.com 域的组织
https://{organization_name}.vsblob.visualstudio.com 使用域的组织 Azure {organization_name}.visualstudio.com DevOps 遥测
https://{organization_name}.vsrm.visualstudio.com 使用{organization_name}.visualstudio.com域的组织Release Management服务
https://{organization_name}.vssps.visualstudio.com 使用域的组织使用 {organization_name}.visualstudio.com Azure DevOps Platform Services
https://{organization_name}.vstmr.visualstudio.com 使用域的组织使用 {organization_name}.visualstudio.com Azure DevOps 测试管理服务
https://*.blob.core.windows.net Azure Artifacts
https://*.dev.azure.com 对于使用 dev.azure.com 域的组织
https://*.vsassets.io 通过 CDN 的 Azure 项目
https://*.vsblob.visualstudio.com 使用域的组织 Azure dev.azure.com DevOps 遥测
https://*.vssps.visualstudio.com 使用域的组织使用 dev.azure.com Azure DevOps Platform Services
https://*.vstmr.visualstudio.com 使用域的组织使用 dev.azure.com Azure DevOps 测试管理服务
https://app.vssps.visualstudio.com 对于使用 {organization_name}.visualstudio.com 域的组织
https://dev.azure.com 对于使用 dev.azure.com 域的组织
https://login.microsoftonline.com Azure Active Directory 登录
https://management.core.windows.net Azure 管理 API 的
https://vstsagentpackage.azureedge.net 代理包

为了确保组织使用任何现有的防火墙或 IP 限制,请确保 dev.azure.com 并打开并 *dev.azure.com 更新允许列出的 IP,以基于 IP 版本包括以下 IP 地址。 如果当前允许列出 13.107.6.18313.107.9.183 IP 地址,请将其保留到位,因为无需删除它们。

IPv4 范围

  • 13.107.6.0/24
  • 13.107.9.0/24
  • 13.107.42.0/24
  • 13.107.43.0/24

IPv6 范围

  • 2620:1ec:4::/48
  • 2620:1ec:a92::/48
  • 2620:1ec:21::/48
  • 2620:1ec:22::/48

注意

有关允许的地址的详细信息,请参阅 允许的地址列表和网络连接

如何实现使用自签名证书运行代理?

使用自签名证书运行代理

如何实现在 Web 代理后面运行代理?

在 Web 代理后面运行代理

如何实现重启代理

如果以交互方式运行代理,请参阅 “以交互方式运行”中的重启说明。 如果以服务的形式运行代理,请按照 运行即服务中的步骤重启代理。

如何实现为每个单独的代理设置不同的环境变量?

在代理的根目录下创建一个 .env 文件,并将要设置为以下格式的环境变量:

MyEnv0=MyEnvValue0
MyEnv1=MyEnvValue1
MyEnv2=MyEnvValue2
MyEnv3=MyEnvValue3
MyEnv4=MyEnvValue4

如何实现配置代理以绕过 Web 代理并连接到 Azure Pipelines?

如果希望代理绕过代理并直接连接到 Azure Pipelines,则应将 Web 代理配置为使代理能够访问以下 URL。

对于使用 *.visualstudio.com 域的组织:

https://login.microsoftonline.com
https://app.vssps.visualstudio.com 
https://{organization_name}.visualstudio.com
https://{organization_name}.vsrm.visualstudio.com
https://{organization_name}.vstmr.visualstudio.com
https://{organization_name}.pkgs.visualstudio.com
https://{organization_name}.vssps.visualstudio.com

对于使用 dev.azure.com 域的组织:

https://dev.azure.com
https://*.dev.azure.com
https://login.microsoftonline.com
https://management.core.windows.net
https://vstsagentpackage.azureedge.net
https://vssps.dev.azure.com

若要确保组织适用于任何现有的防火墙或 IP 限制,请确保dev.azure.com*dev.azure.com并且已打开并更新允许列出的 IP,以基于 IP 版本包括以下 IP 地址。 如果当前允许列出 13.107.6.18313.107.9.183 IP 地址,请保留这些地址,因为无需删除它们。

IPv4 范围

  • 13.107.6.0/24
  • 13.107.9.0/24
  • 13.107.42.0/24
  • 13.107.43.0/24

IPv6 范围

  • 2620:1ec:4::/48
  • 2620:1ec:a92::/48
  • 2620:1ec:21::/48
  • 2620:1ec:22::/48

注意

此过程使代理可以绕过 Web 代理。 生成管道和脚本仍必须针对在生成中运行的每个任务和工具处理绕过 Web 代理。

例如,如果使用 NuGet 任务,则必须将 Web 代理配置为支持绕过托管正在使用的 NuGet 源的服务器 URL。

我在使用 TFS,上述部分中的 URL 不适用于我。 在哪里可以获取帮助?

网站设置和安全性

我在本地使用 TFS,但没有看到其中某些功能。 为什么看不到?

其中某些功能仅在 Azure Pipelines 上可用,在本地尚不可用。 如果你已升级到最新版本的 TFS,则可在本地使用这些功能。