gpt4 book ai didi

jenkins - 如何让 Jenkins 管道在(任何)代理机器上运行,但从不掌握?

转载 作者:行者123 更新时间:2023-12-02 12:09:46 24 4
gpt4 key购买 nike

我的 Jenkins 管道在主计算机和代理(从)计算机上随机交替运行。

整个管道只有一个agent语句,因此:

pipeline {
agent any

如何让构建在负载平衡代理中运行,而不是掌握?

  • 也许可以通过 agent { label 'some-label' } 来完成。是否有指定代理而不是主控的预定义标签?还是我必须自己给所有代理贴上标签?

  • Thisthis展示如何选择特定代理,但我想要代理机器之间的随机平衡。

  • This question讨论了 agent anyagent none,但是这些都不会阻止 master 的使用。
  • This page建议将所有内容包装在 node 节中,但这似乎会强制构建在主节点或指定节点上运行,这又不允许平衡代理。

最佳答案

您可以使用 node('!master') {...}agent { label '!master' } 语法。查看更多详情there .

Jenkins Best Practices 也有一个解决方案主节点本身设置限制页面:

If you have a more complex security setup that allows some users to only configure jobs, but not administer Jenkins, you need to prevent them from running builds on the master node, otherwise they have unrestricted access into the JENKINS_HOME directory. You can do this by setting the executor count to zero. Instead, make sure all jobs run on agents. This ensures that the jenkins master can scale to support many more jobs, and it also protects builds from modifying potentially sensitive data on $JENKINS_HOME accidentally/maliciously. If you need some jobs to run on the master (e.g. backups of Jenkins itself), use the Job Restrictions Plugin to limit which jobs can be executed there.

更新:正如 @Moshisho 提到的,内置节点已从“主节点”重命名为“内置节点”在 Jenkins 2.307 和 Jenkins 2.319.1 中。
所以,现在应该是 agent { label '!built-in' }。查看详情here .

关于jenkins - 如何让 Jenkins 管道在(任何)代理机器上运行,但从不掌握?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54020776/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com