检查Jenkins节点是否在线完成作业,否则发送电子邮件警报

时间:2018-05-21 09:17:43

标签: jenkins continuous-integration offline

将Jenkins作业专用于特殊节点我希望在由于节点脱机而无法运行作业时收到通知。是否可以设置此功能?

换句话说,如果在节点脱机时已启动作业,则默认的Jenkins行为正在等待节点(“挂起”作业状态)。我希望在这种情况下失败(或根本不开始)这项工作并发送“节点离线”邮件。

此节点检查内容应该在作业内部,因为作业很少执行,并且我不关心节点是否在作业不需要时脱机。我已经尝试过外部节点观看插件,但它并没有完全符合我的要求 - 它会在每次节点脱机时触发电子邮件,在我的情况下它是多余的。

2 个答案:

答案 0 :(得分:1)

我不认为检查节点是否可用可以在您想要运行的作业(例如JobX)内完成。在执行时专门针对您的JobX进行检查的行为本身需要运行一个作业 - 我不知道这样做的插件/配置选项。 JobX无法检查该节点是否对JobX空闲。

我使用了很多流作业(在转换为管道逻辑的过程中)JobA将触发JobB,因此JobA可以在主服务器上运行检查节点{{ 1}},JobB在您的情况下,如果启动则触发它。

JobX需要是一个自由式工作并运行'执行系统groovy脚本> Groovy命令'构建步骤。下面的groovy代码是从许多工作示例中提取的,因此未经测试:

JobA

要获取节点脱机电子邮件,您可以触发一个帖子构建操作,以便在发生故障时发送电子邮件。

答案 1 :(得分:1)

我找到了答案 here。 您可以添加调用 curl 命令并处理结果的命令行或 PowerShell 块

curl --silent $JENKINS_URL/computer/$JENKINS_NODENAME/api/json

结果 json 包含具有真/假值的 offline 属性