Azure Classic UI中如何为发布管道各阶段指定专属自托管代理池
给Azure Classic UI发布管道指定阶段专属自托管代理池的解决方案
我刚好之前在Azure DevOps Classic UI里处理过类似的配置,先帮你理清核心逻辑,再一步步说具体操作:
首先澄清一个关键概念:Deployment Group vs 通用Agent Pool
你之前混淆了这两个核心组件:
- 你在组织级别创建的Release Agent Pool属于通用代理池,这类代理是用来运行管道任务(比如构建、打包、部署前验证)的执行服务器,和最终的目标部署服务器是分开的;
- Deployment Group是用来管理目标部署服务器的,比如你要把代码直接部署到TEST/PRD的业务服务器上时才会用到它,它的代理是注册在目标业务服务器上的,和你创建的通用Release Agent Pool不是同一类资源。
你的需求是让TEST/PRD阶段分别用对应的通用代理池执行任务,所以应该用Agent Job来配置,而不是Deployment Group。
具体配置步骤(针对Classic UI)
- 打开你的Release Pipeline编辑页面,找到TEST阶段,点击阶段名称右侧的三个点(
...),选择「Configure stage」; - 在弹出的阶段配置窗口中,切换到「Agent job」标签页——如果你的阶段里还没有Agent Job,先点击「Add task」,搜索并添加「Agent Job」;
- 在Agent Job的配置项里,找到「Agent pool」下拉框,直接选择你提前创建好的TEST代理池,确认后保存;
- 对PRD阶段重复上述操作,在Agent Job里选择PRD代理池即可。
这样配置后,TEST阶段的所有任务就会跑在TEST代理池的自托管代理上,PRD阶段同理。
额外补充:如果确实需要用Deployment Group指定特定代理
如果你的场景是要直接在目标部署服务器上运行任务(比如直接在PRD业务服务器上部署应用),那可以通过标签来指定Deployment Group里的特定代理:
- 先给Deployment Group里的代理添加标签:进入组织的「Deployment Groups」页面,找到目标代理,编辑它的标签(比如给TEST服务器的代理加
test-deploy标签); - 在Release Pipeline的阶段里,找到Deployment Group任务,配置「Machine tags」为你刚才加的标签(比如
test-deploy),这样任务只会在带有该标签的代理服务器上运行。
最后再理一遍逻辑
你之前的困惑源于把Deployment Group和通用Agent Pool的定位搞混了:通用Agent Pool的代理是执行管道任务的“执行机”,而Deployment Group的代理是接收部署的“目标机”。根据你的需求,给每个阶段配置独立的Agent Job并选择对应的通用代理池,就能实现阶段专属代理的效果。
内容的提问来源于stack exchange,提问作者Aotearoa
相关产品推荐
相关产品推荐

