70

Windows 从节点通过“Java web start”连接到 Jenkins 服务器。节点的系统信息没有它的 IP 地址。

我必须遍历我们拥有的所有从节点,并找到哪台机器(IP 地址)对应于 Jenkins 中的从节点。

有没有办法从 Jenkins 本身找到从节点的 IP 地址?

4

8 回答 8

77

通过节点的脚本控制台(Manage Jenkins -> Nodes -> Select a node -> Script Console)我们可以执行groovy脚本。运行以下命令以获取 IP 地址。

println InetAddress.localHost.canonicalHostName
于 2013-02-18T05:58:38.057 回答
26

找出 IP的最有效且与平台无关的方法可能是 master 上的“全局”脚本控制台的以下常规代码

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 地址。

由于这不需要特定于节点的控制台,因此很容易在覆盖所有节点的代码周围添加一个循环

于 2016-09-28T16:04:13.097 回答
18

要在非 Windows 詹金斯奴隶上回答同样的问题:

获取 IP 地址:

println "ifconfig".execute().text

获取主机名:

println "hostname".execute().text
于 2015-05-07T17:07:47.620 回答
12

从 Web 界面

转到节点的Log链接:

http://jenkins.mycompany.com:8080/computer/my_node_name/log

第一行应该是这样的:

JNLP agent connected from /10.11.12.123

截屏

截屏

于 2018-11-19T19:16:06.603 回答
7

这与 deepak 解释的非常相似,但我在简短的步骤中添加了图像。

在 Jenkins 用户界面中单击:

管理 Jenkins -> 节点 -> 选择一个节点 -> 脚本控制台

然后运行 ​​println InetAddress.localHost.canonicalHostName

在此处输入图像描述

于 2019-02-18T19:57:44.020 回答
1

要获取 Windows 从站上的 ip:

导航到脚本控制台(管理 Jenkins ->节点->选择一个节点->脚本控制台

println "ipconfig".execute().text
于 2017-02-27T23:43:06.493 回答
0

在你的 Jenkins 工作中,如果它在 groovy 中,或者回显 ifonfig sh "/sbin/ifconfig -a | grep inet"

于 2016-09-15T05:26:44.437 回答
-1

也可以通过 Jenkins UI 找到:Manage Jenkins --> Manage Nodes --> 点击 Node name --> Configure

这应该显示该节点的公共和私有 IP 地址

于 2018-05-24T15:08:19.047 回答