告诉詹金斯在特定的从属节点上运行特定的项目


Answers:


84

设置作业配置中的“限制可以运行此作业的位置”复选框,然后指定从站的名称。

如果以后添加更多从属,则可以为每个从属设置标签,并在作业配置中指定标签。

请参阅以下参考文档:


谢谢。在找到答案之前,我花了很长时间。它应该已经添加到此页面wiki.jenkins-ci.org/display/JENKINS/Distributed+builds
Surasin Tancharoen

16

如果您正在运行Pipeline作业,则首先要向从属节点(或似乎现在称为代理的代理)添加标签(例如,“ slave”)。

然后,在管道脚本中,指定作业运行的标签:

声明式管道:

pipeline {
    agent {label 'slave'}
    stages {
        ...
    }
}

脚本化管道:

node (label: 'slave') {
    ...
}

现在,此作业将在带有标签“ slave”的任何节点上运行。如果只希望作业在此特定从站上运行,请不要重复使用标签。当然,标签不必是“奴隶”。它可以是任何您想要的。

更新:

在脚本化管道中,如果您的节点名为“我的节点”,则还可以执行以下操作:

node ('My Node') {
    ...
}

如果只希望代码块在该特定节点上运行,这将很有用。但是,使用标签更加灵活,并且可以使添加节点来共享工作负载更加容易。


这很难找到,脚本语法的文档正逐渐倾向于声明式,我还不能迁移,所以谢谢!
米切尔·柯里

7

如果要使用Node / Label作为参数,请安装NodeLabel参数插件


请注意,如果为作业选择“节点”参数,并且要从Groovy调用它,则需要创建一个特殊参数:(params += new org.jvnet.jenkins.plugins.nodelabelparameter.LabelParameterValue('testServer', testServerLabel);而不是通常的StringParameterValue)。
Nux
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.