任何 Jenkins API 中是否有为我提供从属节点 COMPUTERNAME/Hostname 的功能

Is there a function in any Jenkins API that provides me with a slave nodes COMPUTERNAME/Hostname

我需要汇总在我的 jenkins 主节点上设置的 jenkins 从节点的所有主机名列表。许多节点都使用 SLAVE NODE EXAMPLE 之类的名称设置,而不是将它们的服务器名称作为节点名称。我知道如何从 UI 得到这个。但是我需要通过 python 访问它,因为我设置了很多节点,手动遍历每个节点将是一个漫长的过程。

我正在使用 python-jenkins api,它具有获取所有节点及其配置的功能。使用 get_node_config(name)。但是它没有为我提供 COMPUTERNAME。我似乎也无法在 Jenkins 主目录中找到包含该信息的文件。

获得节点名称后,您可以使用该名称获取有关 with 的更多信息 get_node_info(name, depth=0)

nodes = get_nodes()
for n in nodes:
   info = get_node_info(n[name])

如果有帮助,这里有一个 groovy 脚本。 运行 来自控制台。注意:节点必须on-line才能查询。

Jenkins.instance.slaves.each {
   print it.getNodeName() + ' : '
   if ( it.getComputer().isOnline() ) {
      println it.getComputer().getHostName() + ' : ' + it.getComputer().getOSDescription()
   } else {
      println ' - offline -'
   }    
}
return 0

见詹金斯 API - Computer