通過「Java web start」連接到Jenkins服務器的Windows從屬節點。節點的系統信息沒有它的IP地址。查找Jenkins節點的IP
我不得不穿過我們所有的奴隸節點,並找到哪個機器(IP地址)對應於詹金斯的奴隸節點。
有沒有辦法從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