繁体   English   中英

如何在可用代理中运行 Jenkins 作业

[英]How to run a Jenkins job in an available agent

我有一个 Jenkins master 和两个 agent。 但是,与一个代理 (agentA) 的连接有点不稳定,当与第一个代理的连接不可用时,我想使用另一个代理 (agentB)。

我只用了Jenkins web接口,没有用过脚本。 我试图弄清楚如何使用作业配置中的“限制可以运行此项目的位置”选项来完成它。 我尝试使用 agentA|| agentB 但当 agentA 不可用时它会挂起并显示“pending - agentA is offline”

是否有可能实现我需要的配置?

我不能将其留空,因为我有其他代理人(代理人 C、代理人 D)不想让这项工作运行。

我不是 Jenkins 服务器的管理员,因此添加新插件不是我的首选,但可以做到。

Least Load plugin中所述,

默认情况下,Jenkins 会尝试将作业分配到执行的最后一个节点。 这可能导致节点闲置而其他节点过载。

当您概括示例时,我不能 100% 确定您的情况是否可以通过简单地更好地标记节点来解决,或者您至少想要查看负载插件(它是为平衡节点之间的负载而设计的)。 您的示例似乎显示了节点名称(即 agentA/agentB)。 Queue分配逻辑可能是“Only A or Only B”,那么Jenkins坚持下去。 负载平衡可能无法解决这个问题,因为虽然节点(计算机)名称也是 label,但它可能有附加的逻辑与之相关。

如果你 label 池中的一对节点具有公共 label,说“CapabilityA”,并限制你的作业在“CapabilityA”而不是节点名称的地方运行,你可能会发现作业在池中浮动(如果 A 是这就是我们用能力标记节点的方式,我们看到作业在节点之间浮动,但只有在第一个节点已满(每个节点有 4 个执行程序)时才会出现,因此不平衡。

节点可以有很多标签,你可以使用label 条件来拥有复杂的约束

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM