从主节点脚本控制台运行,或者从系统groovy脚本(也在主节点上运行)运行,我如何获得从节点的ip地址?
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。
/sbin/ifconfig
a0zr77ik2#
@Dave Bacher的答案将给予您提供给定主机的所有IP。假设您的从服务器是基于SSH的,这将严格地为您提供代理使用的IP:
def jenkins = jenkins.model.Jenkins.instance for (node in jenkins.nodes) { println "${node.nodeName}: ${node.toComputer().launcher.host}" }
2条答案
按热度按时间svujldwt1#
我希望这个简单的脚本就足够了:
但至少在我的安装中,它在有多个网络接口的系统上没有给予我想要的结果。
您可以使用the answer to "How to execute system command on remote node"中的“在从服务器上运行命令”技术在每个从服务器上运行类似
/sbin/ifconfig
的命令,这当然会给予详细信息,但是我没有Groovy知识来编写输出解析器来提取IP。a0zr77ik2#
@Dave Bacher的答案将给予您提供给定主机的所有IP。假设您的从服务器是基于SSH的,这将严格地为您提供代理使用的IP: