如何从主节点查找jenkins节点的ip地址

plupiseo  于 2023-02-11  发布在  Jenkins
关注(0)|答案(2)|浏览(353)

从主节点脚本控制台运行,或者从系统groovy脚本(也在主节点上运行)运行,我如何获得从节点的ip地址?

svujldwt

svujldwt1#

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

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。

a0zr77ik

a0zr77ik2#

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

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

相关问题