查找Jenkins节点的IP
通过“Java web start”连接到Jenkins服务器的Windows从属节点。节点的系统信息没有它的IP地址。查找Jenkins节点的IP
我不得不穿过我们所有的奴隶节点,并找到哪个机器(IP地址)对应于詹金斯的奴隶节点。
有没有办法从Jenkins本身找到一个从节点的IP地址?
通过脚本控制台(管理詹金斯 - >节点 - >选择一个节点 - >脚本控制台)的节点,我们可以执行Groovy脚本。运行以下命令获取IP地址。
println InetAddress.localHost.canonicalHostName
要回答这个同样的问题在非Windows詹金斯奴:
获取IP地址:
println "ifconfig".execute().text
获取主机名:
println "hostname".execute().text
优秀的除帖子。我花了一段时间才看完所有关于SO的问题的答案。 – Shadoninja 2016-06-13 20:47:19
在你詹金斯工作,如果它在常规或其他呼应ifonfig sh“/ sbin/ifconfig -a | grep inet”
最高效和独立于平台的方式找出IP可能是在主以下Groovy代码为“全局”脚本控制台:
import hudson.model.Computer.ListPossibleNames
def node = jenkins.model.Jenkins.instance.getNode("myslave")
println node.computer.getChannel().call(new ListPossibleNames())
在控制台,这产生(例如)
Result
[192.168.0.17]
结果是一个字符串列表,因为在一台机器上可能有多个IP地址。
因为这不需要特定节点控制台,很容易添加周围覆盖所有节点代码回路。
据我所见,这是唯一在主设备上运行的解决方案。对? – hagello 2017-02-06 12:10:33
是的,这是正确的。 (更确切地说,脚本在主服务器上运行;它通过远程处理将IP列表委托给从节点)。 – 2017-02-06 13:32:52
要获得在Windows奴隶IP:
导航到脚本控制台(管理詹金斯 - >节点 - >选择一个节点 - >脚本控制台)
println "ipconfig".execute().text
为了得到实际的IP地址(最初的要求),我使用了脚本控制台,而是执行了'println InetAddress.localHost.hostAddress'。 – 2013-08-06 15:46:56
这些都不适用于Linux ......或者至少不是我的Ubuntu VM节点。 – 2016-06-15 23:55:40
对于单个节点(至少在运行Linux时)可以正常工作,但是**无法在_all_节点上使用该**进行概述,因为它需要单独选择每个节点的脚本控制台**。我的答案中有一个更通用的解决方案,您可以试试。 – 2016-09-29 05:27:32