首页主机资讯Jenkins如何在Ubuntu上实现多任务并行

Jenkins如何在Ubuntu上实现多任务并行

时间2025-12-08 22:42:04发布访客分类主机资讯浏览936
导读:在 Ubuntu 上,Jenkins 可通过多 Executors、Pipeline 并行阶段、多节点分布式构建以及并发构建 Job 四种方式实现多任务并行。下面给出可直接落地的配置方法与示例。 一、并行方式总览与选择 方式 作用范...

在 Ubuntu 上,Jenkins 可通过多 Executors、Pipeline 并行阶段、多节点分布式构建以及并发构建 Job 四种方式实现多任务并行。下面给出可直接落地的配置方法与示例。


一、并行方式总览与选择

方式 作用范围 适用场景 关键配置点
单机多 Executors 同一 Ubuntu 节点 轻量任务、快速构建、单机资源利用 设置 Manage Jenkins → Configure System → # of executors
Pipeline parallel 阶段 单个流水线内部 多模块/多环境同时构建与测试 使用 parallel { stage … }
多节点分布式构建 多个 Agent/节点 大规模构建、隔离环境、横向扩展 Manage Nodes and Clouds 添加节点,使用 标签 调度
并发构建多个 Job 多个 Job 实例 不同项目/分支同时跑 允许并发构建(默认支持),必要时用 Throttle Concurrent Builds 插件限流

二、单机多 Executors 并行

  • 进入 Manage Jenkins → Configure System,将 # of executors 调整为不超过 CPU 物理核心数(超线程可按需适度上调,但避免内存争用)。
  • 保存后,同一节点即可同时运行多个构建实例,适合快速任务与轻量流水线。
  • 提示:每个并发构建拥有独立工作区,Jenkins 会在目录名后追加 @2、@3 等后缀以避免冲突。

三、Pipeline 并行阶段

  • 在声明式流水线中使用 parallel 将多个阶段并行化,常用于“前端/后端”或“多模块”同时构建与测试。
  • 示例(可直接粘贴到 Jenkinsfile):
pipeline {

  agent any
  stages {

    stage('并行构建与测试') {

      parallel {

        stage('构建前端') {

          steps {
 echo 'Building frontend...' }

        }

        stage('构建后端') {

          steps {
 echo 'Building backend...' }

        }

        stage('并行测试集A') {

          steps {

            script {

              timeout(time: 5, unit: 'MINUTES') {

                echo 'Running tests A...'
                // sh 'run-tests-a.sh'
              }

            }

          }

        }

        stage('并行测试集B') {

          steps {

            script {

              timeout(time: 5, unit: 'MINUTES') {

                echo 'Running tests B...'
                // sh 'run-tests-b.sh'
              }

            }

          }

        }

      }

    }

  }

  post {

    success {
 echo '✅ 全部完成' }

    failure {
 echo '❌ 存在失败或超时' }

  }

}

  • 建议为可能卡住的脚本或测试套件添加 timeout,避免流水线无限阻塞。

四、多节点分布式构建

  • 添加节点:进入 Manage Jenkins → Manage Nodes and Clouds → New Node,配置 标签(Label)、远程工作目录、启动方式(如 SSH)。
  • 在 Job 配置中使用 Restrict where this project can be run 指定节点 标签,或在 Pipeline 中使用 agent { label ‘your-label’ }
  • 这样可将构建分发到多台 Ubuntu 机器或多环境,实现横向扩展与资源隔离。

五、并发构建多个 Job 与扩展实践

  • 同一 Job 的并发构建:Jenkins 默认允许同一 Job 同时运行多个实例(每个实例有独立工作区,目录名后缀 @N),适合不同分支/参数同时触发。
  • 如需限流或配额控制,可安装 Throttle Concurrent Builds 插件,在 Job 配置中设置最大并发数。
  • 批量创建/编排多个并行任务:使用 Job DSL 脚本批量生成 Pipeline Job,统一从 Jenkinsfile 拉取脚本,便于规模化治理。
  • 示例(Job DSL 片段):
jobs {

  pipelineJob('Parallel-Job-1') {

    definition {

      cpsScm {

        scm {

          git {

            remote {
 url('https://github.com/your-org/your-repo.git') }

            credentialsId('your-credentials-id')
          }

        }

        scriptPath('Jenkinsfile')
      }

    }

  }

  pipelineJob('Parallel-Job-2') {

    definition {

      cpsScm {

        scm {

          git {

            remote {
 url('https://github.com/your-org/your-repo.git') }

            credentialsId('your-credentials-id')
          }

        }

        scriptPath('Jenkinsfile')
      }

    }

  }

}
    
  • 适用场景:多项目/多仓库同时构建、按团队或业务线隔离流水线。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Jenkins如何在Ubuntu上实现多任务并行
本文地址: https://pptw.com/jishu/766432.html
Ubuntu Jenkins如何进行数据备份与恢复 Jenkins如何在Ubuntu上实现自动化测试

游客 回复需填写必要信息