You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Jenkins:当参数设为true时任务仅运行在指定节点

实现Jenkins任务按参数指定节点运行的方案

下面分两种常见的Jenkins项目类型,给出具体配置步骤:

一、自由风格软件项目

  1. 添加布尔构建参数
    进入任务配置页,找到「参数化构建过程」,点击「添加参数」选择「布尔参数」:

    • 参数名称:RUN_ON_TARGET_NODE(可自定义,后续配置需对应)
    • 默认值:建议设为false
    • 描述:填写“是否在目标节点运行任务”
  2. 配置节点运行限制
    找到「限制项目运行的节点」选项,勾选后在「标签表达式」中输入以下逻辑:

    (RUN_ON_TARGET_NODE == true && 目标节点名称) || (RUN_ON_TARGET_NODE != true && (节点1名称 || 节点2名称))
    

    替换说明:

    • 目标节点名称:替换为你指定的那台节点的实际名称(大小写敏感)
    • 节点1名称、节点2名称:替换为你的两台Jenkins节点的实际名称
      逻辑说明:当参数RUN_ON_TARGET_NODE为true时,任务仅能在目标节点运行;参数为false时,可在任意一台节点运行。
  3. 测试验证
    保存配置后,触发构建时勾选参数为true,检查任务是否仅在目标节点执行;不勾选则验证是否可在两台节点中分配执行。

二、Pipeline项目

Pipeline支持更灵活的条件控制,以下提供两种实现方式:

方式1:单阶段动态选择节点(步骤一致时适用)

pipeline {
    agent none
    parameters {
        // 定义布尔参数
        booleanParam(name: 'RUN_ON_TARGET_NODE', defaultValue: false, description: '是否在目标节点运行任务')
    }
    stages {
        stage('执行任务') {
            agent {
                // 根据参数动态选择节点标签/名称
                node {
                    label "${params.RUN_ON_TARGET_NODE ? '目标节点名称' : '节点1名称 || 节点2名称'}"
                }
            }
            steps {
                echo "当前运行节点:${NODE_NAME}"
                // 此处添加你的任务执行步骤
            }
        }
    }
}

方式2:分阶段条件选择节点(步骤有差异时适用)

pipeline {
    agent none
    parameters {
        booleanParam(name: 'RUN_ON_TARGET_NODE', defaultValue: false, description: '是否在目标节点运行任务')
    }
    stages {
        stage('目标节点执行') {
            // 仅当参数为true时进入此阶段
            when {
                expression { params.RUN_ON_TARGET_NODE }
            }
            agent { node '目标节点名称' }
            steps {
                echo "运行在目标节点:${NODE_NAME}"
                // 目标节点专属任务步骤
            }
        }
        stage('普通节点执行') {
            // 仅当参数为false时进入此阶段
            when {
                expression { !params.RUN_ON_TARGET_NODE }
            }
            agent { node '节点1名称 || 节点2名称' }
            steps {
                echo "运行在普通节点:${NODE_NAME}"
                // 普通节点任务步骤
            }
        }
    }
}

注意事项

  • 节点名称/标签需与Jenkins系统中配置的完全一致,大小写敏感
  • 若节点使用标签分组,可将上述配置中的节点名称替换为对应标签(例如目标节点打了target-node标签,就用target-node代替节点名称)
  • Pipeline中逻辑判断需确保参数名称与定义的一致,避免拼写错误

内容的提问来源于stack exchange,提问作者Colaertg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 18:54:23