在 CentOS 上使用 Jenkins 实现“并发”,通常有以下几种常见场景和做法,我按最常用 → 进阶给你说明,你可以按需选择。
适合:参数化构建、多环境/多版本测试
步骤:
✅ 效果:
多个用户或触发器可以同时跑这个 Job,互不影响
⚠ 注意:
${WORKSPACE} 不冲突)Jenkins Master (CentOS)
├── Agent-1 (CentOS)
├── Agent-2 (CentOS / Docker)
└── Agent-3 (Windows)
# 在被控机
useradd jenkins
passwd jenkins
# 安装 Java
yum install -y java-11-openjdk
Jenkins UI:
✅ 效果:
多个 Job / 同一 Job 可在不同 Agent 上真正并行
parallelpipeline {
agent any
stages {
stage('Build') {
parallel {
stage('Linux') {
steps {
sh 'make linux'
}
}
stage('Windows') {
agent { label 'windows' }
steps {
bat 'make windows'
}
}
}
}
}
}
✅ 常用于:
pipeline {
agent {
docker { image 'maven:3.8' }
}
stages {
stage('Test') {
steps {
sh 'mvn test'
}
}
}
}
配合:
✅ 适合:
# 增加 Jenkins 执行线程
vi /etc/sysconfig/jenkins
JENKINS_JAVA_OPTIONS="-Xmx4g"
# 调整文件描述符
ulimit -n 65535
❌ 共享目录冲突
✅ 使用 ${BUILD_NUMBER} 隔离
❌ 同一端口被占用
✅ Docker / 多 Agent
❌ Master 跑太多任务
✅ Master 只调度,Agent 执行
为了给你更精准的方案,可以补充:
我可以直接给你 可用配置或 Jenkinsfile。