如何从主服务器中查找jenkins节点的IP地址

时间:2015-01-22 15:13:57

标签: jenkins

从主节点脚本控制台运行,或从系统groovy脚本(也在主服务器上运行)运行,如何获取从节点的IP地址?

2 个答案:

答案 0 :(得分:5)

我希望这个简单的脚本就足够了:

import java.net.*

for (slave in Jenkins.instance.slaves) {
  host = slave.computer.hostName
  addr = InetAddress.getAllByName(host)
  println slave.name + ": " + addr.hostAddress
}

但至少在我的安装中,它并没有在具有多个网络接口的系统上提供我想要的结果。

您可以使用"在奴隶上运行命令"来自the answer to "How to execute system command on remote node"的技术在每个奴隶上运行/sbin/ifconfig之类的东西。这肯定会给你详细信息,但我没有Groovy精明来编写输出解析器来提取IP。

答案 1 :(得分:2)

@Dave Bacher的回答将为您提供给定主机的所有IP。 假设您的从属服务器基于SSH,这将严格为您提供代理使用的IP:

def jenkins = jenkins.model.Jenkins.instance
for (node in jenkins.nodes) {
  println "${node.nodeName}: node.toComputer().launcher.host"
}