jenkins奴隶地点

我们在口环境中使用jenkins。 在大约20台机器中 – 我会说每天至less有3个从机服务停止不明原因。 我有一个监视系统,可以观看服务和重新启动,并做了许多其他有用的事情 – 但到目前为止,我还没有想出如何知道哪些服务在哪些机器上关心 – 基本上我使用jenkins rest api得到奴隶的名单 – 但不知何故,我需要翻译成机器名称…和批判 – 我需要这样做, 当他们没有连接 – 所以在机器上运行像打印ip是没有用的。

我知道jenkins是这样devise的,奴隶接触服务器,所以奴隶可以在任何地方运行,但在我们的情况下,我们永远不会“移动”奴隶,我们只是创build另一个。 我只是想知道是否有任何可访问的日志或历史logging,或者是“我们最后一次从这个奴隶那里得知,它是从机器X作为服务名称Y”

假设jenkins目前无法联系奴隶,有没有可能以任何方式获得这些信息?

这取决于您在从站配置中使用的连接方式,但Jenkins通常应该保持从站配置,即使从站离线。

这个URL会给你一个你所有的在线状态的从属名称列表:

JENKINS_BASE_URL/computer/api/json?tree=computer[displayName,offline] 

但是REST API不会显示主机名。 这里有一些Groovy代码可以做到这一点:

 hudson = Hudson.instance for (slave in hudson.slaves) { println "Slave name: ${slave.name} hostname: ${slave.launcher.host} online: ${slave.computer.online}" } 

这需要你安装了Jenkins Groovy插件 。 您可以通过多种方式执行脚本:

  1. 通过脚本控制台(JENKINS_BASE_URL /脚本)
  2. 使用Jenkins CLI“groovy”命令(请参阅JENKINS_BASE_URL / cli)
  3. 通过Jenkins作业中的系统Groovy Script构建步骤

对于选项2和3,添加行

 import hudson.model.* import hudson.slaves.* 

在脚本的顶部。