我现在有两份工作,这两份工作几乎同时进行。
我有两个奴隶设置,所以希望,如果工作#1开始对奴隶#1,当工作#2开始,它会看到奴隶#1是忙碌和使用奴隶#2。
我已经安装了NodeLabel参数插件,将默认节点设置为slave #1,并为每个作业设置了slave #1和#2的可能节点。我将节点资格设置为“忽略离线节点”和“仅在作业成功时运行下一次构建”(只是因为我不能100%确定选择什么)。
我看到的问题是:
- 如果在第二个作业启动时从机#1正在使用中,则它会显示“(pending-Waiting for next available executor on slave#1)[NodeParameterValue:slave#1=slave#2]”,而不是从机#2启动
- 当我手动构建此作业时,它不会自动选择默认节点,而是让我选择使用“带参数构建”
我猜我错过了一些相当简单的东西,因为我认为这必须是一个常见的使用这个插件.动态选择一个奴隶的基础上,其中一个是不使用?
1条答案
按热度按时间h7wcgrx31#
我通过确保被调用的作业的默认节点和可能节点都设置为相同的两个从节点来解决这个问题。(而不是默认值仅为#1)。
其次,调用从机的作业必须在.properties文件中设置一个变量,作业定义该变量以确定应运行哪个节点。然后使用调用作业中的“标签工厂选项的所有节点”读取该变量。
这篇文章非常有帮助,但是就像我说的,我使用了“node for label factory”而不是他推荐的“node label parameter”选项:http://www.shaunabram.com/dynamically-set-jenkins-node/