6

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

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

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

非常感谢!

4

2 回答 2

4

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

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

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

于 2015-08-14T11:49:28.317 回答
0

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

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

于 2012-07-19T20:27:54.340 回答