【问题标题】:TFS 2017 - Build agents priority and orderTFS 2017 - 构建代理优先级和顺序
【发布时间】:2018-02-23 23:29:09
【问题描述】:

我有一个包含 10 个代理的池。我注意到通常只使用其中一些,而其他一些几乎从未使用过。

我想知道是否有办法让 TFS 使用所有这些?例如,像 TFS 这样的东西会根据顺序抓取它们。第一次使用数字 1,然后是 2、3。使用代理后,它会将代理放在队列的末尾。因此,在再次使用数字 1 之前,TFS 会先使用所有数字。

如果有这样的逻辑来充分利用我们现有的所有代理,那就太好了。

【问题讨论】:

  • 为什么重要?我没有看到需要在这里解决的问题。这不像是使用更多的代理会磨损。它们不是轮胎;他们不需要旋转。如果您的可用代理多于正在使用的代理,请去掉其中的一些。
  • 这很重要,因为我有 10 个代理,我想平等地使用它们。我们的构建和部署过程会创建大量临时存档,并且需要定期删除它们。但是,由于某种原因,TFS 没有处理它(我敢打赌,这是保留系统上的一个错误)。因此,如果我们继续使用一个代理而不是其他代理,我们就会用完该特定代理中的空间,这不好,因为我还有其他未使用的代理。
  • @DanielMann 代理 1 空间不足。所有构建都失败了。是的,为什么重要?不知道。

标签: tfs azure-devops azure-pipelines agent azure-pipelines-release-pipeline


【解决方案1】:

正如丹尼尔所说,它们不需要轮换。如果其中一些不是必需的,您可以去掉它们。

但是,如果您想每次都使用特定代理,您可以在构建定义中设置 Demands

在构建定义中,在 General 下,添加 Demand Agent.Name 并将其设置为等于 value 列下的构建代理的名称,或者添加自定义需求(例如,使用 USER CAPABILITIES)来识别特定代理。这将确保构建仅由该代理提供服务。

因此,您可以创建不同的构建定义来使用每个代理。

详情请参考这篇文章:Build vNext, distributing load to different agents

但是,我们目前无法实现这一目标。该功能有一个user voice request here。您可以去投票以在将来实现它。

【讨论】:

  • 感谢您回复安迪。我考虑过使用 Demands 功能,但我不想为 PullRequest 保存 3 个代理,为构建保存 3 个代理,为发布保存 3 个代理。有时我会需要更多的东西,这取决于日期和时间。我想解决上述相关的保留问题。感谢您的回复和建议:-)
  • @WagnerCJ 不幸的是,没有轮换代理的功能,唯一的方法是暂时指定对代理的要求。但是,Michel 提交了一个用户声音来建议该功能,你可以去投票给它。请参阅链接的更新答案。
  • 感谢您让我知道它目前不可用。另外,感谢分享“用户声音”超链接。我已经添加了我的考虑并在那里投票!很高兴知道我并不孤单;-)
  • @WagnerCJ 是的,我们希望能够尽快实现该功能。如果有帮助,您可以Accept it as an Answer,这对阅读此主题的其他社区成员可能会有所帮助。
  • 在 VSTS 中:选择构建定义 -> 编辑 -> 选项 -> 需求 - 添加“Agent.Name”等于“MYAGENT”
【解决方案2】:

我想知道同样的事情。清理过程似乎不时留下人工制品。随着我们运行构建的数量,服务器最终往往会占用空间不足(即使我们编写了自己的清理实用程序)。

看来TFS的疯狂是有办法的:VSTS Build Agent Selection Demystified

在与微软的一些人讨论后,事实证明 选择例程的工作方式是这样的——当一个新的构建是 排队:

  1. 选择所有符合指定需求的构建代理
  2. 按代理名称的聚集索引对结果进行排序

翻译:构建 代理人的选择顺序与他们注册时的顺序相同 与 VSTS。我想这是一种简单的方法,但不是我想的那种 期待。

【讨论】:

  • 太棒了!很有帮助的文章!谢谢分享!不幸的是,它没有帮助我(帮助我理解!)解决我的问题。由于 VSTS 以这种方式工作,我无法更改它用于选择下一个代理的逻辑。我不会更改他们注册的顺序,因为这对我没有帮助。我对上面列出的用户声音进行了评论和投票。也许你也可以做到。很高兴看到我并不孤单。
  • 是的!这对我有用!我能够通过卸载然后再次安装代理来管理代理池之间的优先级。屏幕中的顺序保持不变,但现在 TFS 选择遵循我想要的优先级。因此,我在 4 台服务器中有 4 个不同的代理,现在我的容量分布更加均匀。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-14
  • 2017-08-14
  • 2010-12-01
  • 2017-05-14
  • 2016-01-21
相关资源
最近更新 更多