You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure Pipeline代理池中排除特定机器?

解决Azure Pipeline排除指定代理机器的问题

针对你的需求,有三种实用方案可以排除APool中的m1、m2两台机器,同时修正你原配置中的语法错误:

方案1:直接排除指定机器名

通过demands设置代理名称不等于m1和m2,强制Pipeline只使用其他6台机器:

target:
- main

stages:
- stage: A
  jobs:
  - job: A1
    pool: 
      name: APool
      demands:
        - Agent.Name -notequals m1
        - Agent.Name -notequals m2
    steps:
      - script: echo "运行A1任务"
  - job: B1
    pool: 
      name: APool
      demands:
        - Agent.Name -notequals m1
        - Agent.Name -notequals m2
    steps:
      - script: echo "运行B1任务"

注意:如果后续新增未安装Docker的机器,需要手动更新demands列表。

方案2:检查Docker是否存在(推荐)

既然问题根源是m1、m2未安装Docker,直接要求代理必须具备Docker能力,自动过滤所有未装Docker的机器,无需指定机器名:

target:
- main

stages:
- stage: A
  jobs:
  - job: A1
    pool: 
      name: APool
      demands: docker
    steps:
      - script: echo "运行A1任务"
  - job: B1
    pool: 
      name: APool
      demands: docker
    steps:
      - script: echo "运行B1任务"

优势:后续新增机器只要安装Docker,就会自动被Pipeline选中,无需修改配置。

方案3:通过代理标签筛选

先给APool中已安装Docker的6台机器添加统一标签(比如hasDocker),然后在Pipeline中指定只使用带有该标签的代理:

  1. 进入Azure DevOps的代理池管理页面,找到APool中的目标机器,添加hasDocker标签
  2. 修改Pipeline配置:
target:
- main

stages:
- stage: A
  jobs:
  - job: A1
    pool: 
      name: APool
      tags: hasDocker
    steps:
      - script: echo "运行A1任务"
  - job: B1
    pool: 
      name: APool
      tags: hasDocker
    steps:
      - script: echo "运行B1任务"

优势:适合批量管理代理,后续新增机器只需添加标签即可纳入Pipeline使用范围。

语法错误修正说明

你原配置中有两处语法问题,会导致Pipeline运行失败:

  • steps后面缺少冒号(steps:)
  • -script应该改为- script:(注意空格和冒号)

内容的提问来源于stack exchange,提问作者barteloma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 23:22:23