如何配置采用Pull机制的Azure DevOps自托管构建代理(无需部署至DMZ)
可以配置无需暴露公网的自托管构建代理(拉取模式)
完全可以实现你的需求,Azure DevOps目前依然支持自托管构建代理以**主动拉取(Pull)**的方式与服务端通信,无需将代理服务器暴露在公网,也不需要部署在DMZ区域。
具体配置步骤:
创建支持拉取模式的代理池
- 登录Azure DevOps组织,进入目标项目的「项目设置」→「代理池」,点击「新建代理池」创建一个专属池(例如命名为
LocalPrivateAgents)。 - 进入该代理池的设置页面,找到「代理通信」选项,选择「拉取模式(代理主动连接到Azure DevOps)」,保存设置。
- 登录Azure DevOps组织,进入目标项目的「项目设置」→「代理池」,点击「新建代理池」创建一个专属池(例如命名为
下载并配置本地代理
- 在刚才创建的代理池页面,点击「下载代理」,根据你的本地服务器操作系统选择对应安装包(Windows/Linux/macOS)。
- 解压安装包后,运行配置脚本:
- Windows系统:执行
config.cmd - Linux/macOS系统:执行
config.sh
- Windows系统:执行
- 配置过程中依次输入:Azure DevOps组织URL、拥有代理池管理权限的个人访问令牌(PAT)、之前创建的代理池名称,其余选项可按默认设置完成配置。
- 启动代理:
- Windows:直接运行
run.cmd临时启动,或执行.\svc install将代理安装为系统服务,再用.\svc start启动服务。 - Linux/macOS:运行
./run.sh临时启动,或配置为系统服务实现后台常驻运行。
- Windows:直接运行
验证代理状态
- 返回Azure DevOps的代理池页面,若看到配置的代理显示「在线」状态,说明拉取模式已配置成功。
流水线关联代理池
- 在YAML流水线中,通过
pool字段指定代理池:pool: name: 'LocalPrivateAgents' - 若使用经典编辑器创建流水线,在「代理池」选择环节直接选中刚才创建的池即可。
- 在YAML流水线中,通过
拉取模式下,本地代理会定期主动向Azure DevOps服务端轮询待执行的构建任务,仅需保证本地服务器能正常访问Azure DevOps的公网端点(如https://dev.azure.com),无需开放任何入站端口,完全满足你不想暴露构建服务器的需求。
内容的提问来源于stack exchange,提问作者TravelingFox
相关产品推荐
相关产品推荐

