詹金斯 - 管理资源池

时间:2012-07-19 16:40:01

标签: resources jenkins nodes pool

我正在尝试建立一个Jenkins系统,其中某个程序必须在网络上的板上运行,使用telnet访问。我们在这里谈论数百个这样的工作,因此我们将设置多个板。因此,每个工作都必须分配一个板,但问题是只有一个工作可以同时拥有某个板,否则程序就会失败。

我现在的解决方案是使用主从设置,我使用SSH连接到同一台机器(因此在同一台机器上有一个主设备和多个从设备)。然后,每个从节点都有一个标签,用于程序必须远程登录的IP地址。这可以顺利安排,但它可能会导致问题,因为所有节点都使用SSH连接到同一台机器。使用SSH连接电路板不是一种选择。

有没有办法获得与上面相同的功能,但是没有使用SSH连接到同一台机器?所以基本上我希望能够说:我们有n个可用的机器,当一个工作进来时给它一台机器并传递一个属于那台机器的标签(在这种情况下是它的IP地址);现在还剩下n-1台机器。 相互排斥接近,但不允许上述功能,等待资源的作业占用节点的执行者之一。

非常感谢!

2 个答案:

答案 0 :(得分:4)

我意识到你的问题可能已经在几年前解决了,但万一其他人正在寻找答案并遇到这个问题。

您可以使用“可锁定资源”插件并将IP地址设置为资源名称并使用标签,例如使用test-board-ip。它简单易用。

另一种可能性是使用“外部资源调度程序”插件。它提供了更多的可能性,但它有一个错误导致它有时挂起。而且似乎不再需要维护(2013年的最新更新)。

答案 1 :(得分:0)

也许你应该看看Lock和Latches Plugin。您可以使用此插件锁定资源,只需要让作业锁定您想要的板。

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