2012-07-19 155 views
6

我試圖建立一個Jenkins系統,其中某個程序必須在網絡板上運行,使用telnet訪問。我們在這裏談論數百個這樣的工作,因此我們將設立多個委員會。因此,每個工作都必須分配一個董事會,但問題是隻有一個職位可以同時擁有某個董事會,否則該計劃將失敗。Jenkins - 管理資源池

我現在使用的解決方案是使用主從設置,使用SSH連接到同一臺計算機(因此同一臺計算機上有主設備和多臺從設備)。每個從節點都有一個標籤供程序必須telnet到的IP地址。這可以工作,明智的調度,但它可能會導致問題,因爲所有節點使用SSH連接到同一臺機器。使用SSH連接到電路板不是一種選擇。

有什麼辦法可以獲得與上面相同的功能,但是不使用SSH連接到同一臺機器上?所以基本上我想能夠說:我們有n臺可用的機器,當一個工作進來時,給它一臺這樣的機器,並把它傳給一臺屬於那臺機器的標籤(在這種情況下它的IP地址)。現在剩下n-1臺機器了。 相互排斥靠得很近,但不允許上述功能,等待資源的作業佔用節點的一個執行者。

非常感謝!

+0

與此類似:http://stackoverflow.com/questions/10950439/resource-mange-external-nodes-in-jenkins-for-tests – 2012-07-19 16:40:44

回答

0

也許你應該看看Lock和Latches Plugin。你可以用這個插件鎖定一個資源,只需要作業來鎖定你想要的電路板。

https://wiki.jenkins-ci.org/display/JENKINS/Locks+and+Latches+plugin

+1

感謝您的回覆。 雖然我認爲這不會起作用,主要是因爲我想讓詹金斯動態地將作業分配到電路板上,所以當有節點可用時將作業分配給節點。我相信這個插件沒有這樣的事情,要求你事先指定它應該在哪個板上運行。 – 2012-07-19 22:45:37

4

我明白你的問題可能已經解決了幾年前,但如果有人在尋找答案,並運行到這一點。

您可以使用「可鎖定資源」插件,並將IP地址設置爲資源的名稱,並使用標籤,例如test-board-ip.It使用簡單易用。

另一種可能性是使用「外部資源調度程序」插件。它提供了更多的可能性,但它有一個導致它有時掛起的錯誤。而且似乎沒有更多的維護(從2013年的最新更新)。