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

Jenkins Pipeline多任务复用同一EC2节点实例问题求助

解决Jenkins Pipeline子任务在同一EC2节点运行的问题

核心原因

你调用的子任务(verfiy1/verfiy2/verify3)会根据自身agent配置重新分配EC2节点,和父Pipeline的节点无关联,所以每次都会启动新实例。要实现所有任务复用同一节点,需让子任务明确指定父Pipeline所在的节点。

具体解决方案

步骤1:修改父Pipeline代码,传递当前节点名称给子任务

在调用每个子任务时,新增参数传递父Pipeline所在节点的唯一名称(通过env.NODE_NAME获取):

pipeline {
    agent { label 'linux' }
    stages{
        stage("verify1"){
            steps {
                script {
                    build(job: "verfiy1", parameters: [
                        string(name: 'verfiy1', value: "${params.verfiy1}"),
                        string(name: 'TARGET_NODE', value: "${env.NODE_NAME}")
                    ])
                }
            }
        }
        
        stage("verify2"){
            steps {
                script {
                    build(job: "verfiy2", parameters: [
                        string(name: 'verfiy2', value: "${params.verfiy2}"),
                        string(name: 'TARGET_NODE', value: "${env.NODE_NAME}")
                    ])
                }
            }
        }
        
        stage("verify3"){
            steps {
                script {
                    build(job: "verify3", parameters: [
                        string(name: 'verify3', value: "${params.verify3}"),
                        string(name: 'TARGET_NODE', value: "${env.NODE_NAME}")
                    ])
                }
            }
        }
    }
}

步骤2:修改子任务的agent配置,绑定到指定节点

根据子任务的类型做对应修改:

情况1:子任务是Pipeline类型

修改子任务的Pipeline代码,将agent的label设置为传递过来的TARGET_NODE参数:

pipeline {
    agent { label "${params.TARGET_NODE}" }
    // 子任务的其他构建步骤...
}

情况2:子任务是自由风格项目

  1. 进入子任务配置页面,勾选Restrict where this project can be run,输入${TARGET_NODE}
  2. 开启This project is parameterized,添加字符串类型参数,名称设为TARGET_NODE

验证效果

重新运行父Pipeline后,所有子任务都会复用父Pipeline启动的EC2节点,不会再创建新实例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 06:35:28