Jenkins 詹金斯在奴隶中建立了一份工作,他有与我的工作要求相匹配的最佳要求

Jenkins 詹金斯在奴隶中建立了一份工作,他有与我的工作要求相匹配的最佳要求,jenkins,continuous-integration,devops,master-slave,jenkins-slave,Jenkins,Continuous Integration,Devops,Master Slave,Jenkins Slave,我想让Jenkins在具有最佳环境要求的从机中启动构建。例如,我有带JDK 7的从机1和带JDK 8的从机2,我的作业在JDK 8上运行。我希望Jenkins在slave 2上自动构建我的作业,因为它有JDK 8 我没有发现任何与这种情况有关的东西。我尝试了一些插件,比如节点和标签参数插件和参数化触发器插件 这是两台不同机器中的两个从机。我希望詹金斯将我的工作建立在对我的工作有最佳要求的工作上。解决方案1 ,在管道中,可以基于标签选择代理:agent{label'my defined labe

我想让Jenkins在具有最佳环境要求的从机中启动构建。例如,我有带JDK 7的从机1和带JDK 8的从机2,我的作业在JDK 8上运行。我希望Jenkins在slave 2上自动构建我的作业,因为它有JDK 8

我没有发现任何与这种情况有关的东西。我尝试了一些插件,比如节点和标签参数插件和参数化触发器插件


这是两台不同机器中的两个从机。我希望詹金斯将我的工作建立在对我的工作有最佳要求的工作上。

解决方案1

,在管道中,可以基于标签选择代理:
agent{label'my defined label'}

因此,您应该编辑节点并添加适当的标签,然后根据适合您的条件在管道中定位正确的标签。例如,如果定义了标签“java8”,则可以使用以下内容将代理作为目标:

pipeline{
    agent { label 'java8'}
     stages {
...
解决方案2


另一种解决方案是在作业配置中“限制此作业可以运行的位置”。当你勾选这个框时,然后,您可以指定要在其上执行作业的从属节点的名称。

因此,第一种解决方案是,我可以为每个节点分配其功能,并为每个作业分配其要求,然后当我开始构建任何作业时,jenkins会自动选择具有与我的作业要求相匹配的功能的节点?是的这就是我的想法!您仍然需要在groovy代码中表达您的条件,但实际上它是自动的。