【问题标题】:Jenkins - Managing a pool of resourcesJenkins - 管理资源池
【发布时间】:2012-07-18 21:48:41
【问题描述】:

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

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

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

非常感谢!

【问题讨论】:

标签: resources jenkins nodes pool


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 感谢您的回复。我认为这不起作用,主要是因为我希望 Jenkins 动态地在板上分配作业,因此当一个节点可用时将作业分配给一个节点。我相信这个插件不会做这样的事情,需要你事先指定它应该在哪个板上运行。
    猜你喜欢
    • 1970-01-01
    • 2012-10-26
    • 1970-01-01
    • 1970-01-01
    • 2012-06-12
    • 1970-01-01
    • 2021-07-20
    • 1970-01-01
    • 2012-10-05
    相关资源
    最近更新 更多