“在默认池中找不到满足指定要求的代理:

Posted

技术标签:

【中文标题】“在默认池中找不到满足指定要求的代理:【英文标题】:"No agent found in pool Default which satisfies the specified demands: 【发布时间】:2020-04-10 16:12:25 【问题描述】:

我在 Azure DevOps 管道中进行构建时收到以下消息。这里我使用的是 Azure DevOps 管道、VS2017 和 Windows 2016。

"在池默认中没有找到满足指定要求的代理:

msbuild

视觉工作室

vs测试

Agent.Version -gtVersion 2.161.0 "

当我在单个管道中使用三个代理作业时,这会失败。如果我在新管道中运行相同的任务,它工作正常。您能否提出解决方案?

【问题讨论】:

【参考方案1】:

这里也一样。 我们有同样的问题,MS 正在跟踪它。 https://twitter.com/AzureDevOps/status/1207288336206815232

【讨论】:

我们注意到问题发生在我们使用 DownloadPipelineArtifact@2 任务时 这个问题似乎只出现在第二阶段构建中:dev.azure.com/rmetzger/Flink/_build/…(但它们也包含一个DownloadPipelineArtifact 任务。 我刚刚意识到代理已经发布了 2.163 版本。只需更新它们即可解决问题:)【参考方案2】:

这个问题是由“Download Pipeline Artifacts@2”任务引起的。

不久前已向产品组报告,我们的工程师已发布解决兼容性问题的修复程序。此问题现已修复。对于给您带来的不便,我深表歉意。

有关详细信息,请参阅我们的开发者社区论坛上的case。

【讨论】:

感谢您的帮助。我删除了“下载管道工件@2”并添加了“下载构建工件”并进行了一些更改以符合我们的要求。我们现在可以正常构建了。【参考方案3】:

在我的情况下,我们遇到了错误,这就是解决它的方法:

我登录到我们的构建服务器并重新启动了这三个服务:

在我们的例子中,这只是一个管道的问题,因为我们使用的另一个管道运行正常。我不知道为什么一个管道工作而另一个管道没有工作,因为它们都使用相同的代理,但重新启动服务解决了它。

【讨论】:

【参考方案4】:

我在创建新代理时收到此错误。 这个新代理没有收到旧代理上的现有User-defined capabilities

比较代理功能后,我添加了缺少的用户定义功能并开始编译。

【讨论】:

【参考方案5】:

在您的管道定义 YML 文件中,您必须在指定代理池之前指定“windows-2016”,见下文:

stages:
- stage: Build
  displayName: 'IaC Build'
  variables:
  - name: var
    value: val
  jobs:
  - job: Build
    pool:
          vmImage: 'windows-2016'
    steps:
    - task: ...
# Deploy Dev 
- stage: DeployDevInfra
  displayName: 'Deploy: DEV'
  dependsOn: build
  variables:
  - group: your-var-group
  - name: var
    value: val
  jobs:
  - template: another-pipeline.yml
    parameters:
      agentpool: 'here-come-name-of-your-agent-pool'
      environment: 'your-dev-environment'

【讨论】:

【参考方案6】:

就我而言,我不得不删除并重新创建发布管道,它才开始工作。其他答案都不适用于我。

【讨论】:

以上是关于“在默认池中找不到满足指定要求的代理:的主要内容,如果未能解决你的问题,请参考以下文章