在Debian系统上搭建Jenkins集群前,需完成基础环境配置:
sudo apt update && sudo apt install -y openjdk-11-jdk wget curl安装Java(Jenkins依赖Java 11及以上)。wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list
sudo apt update && sudo apt install -y jenkins
sudo systemctl enable jenkins && sudo systemctl start jenkins
http://<master-ip>:8080,输入/var/lib/jenkins/secrets/initialAdminPassword中的临时密码解锁,安装推荐插件(如Pipeline、Git、SSH Agent),创建管理员用户。Manage Jenkins > Manage Nodes and Clouds > New Node,输入节点名称(如slave1),选择Permanent Agent,配置Remote root directory(如/home/jenkins),启动方法选择SSH,填写Slave节点的IP、用户名及私钥(需提前配置SSH免密登录)。docker run -d --name jenkins-master -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean:lts
docker run -d --name jenkins-slave -e JENKINS_URL=http://<master-ip>:8080 -e JENKINS_SECRET=<secret> -e JENKINS_AGENT_NAME=slave1 -v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean:lts
其中<secret>为Master节点Manage Jenkins > Manage Nodes中生成的Agent Secret。sudo apt install -y nginx
编辑/etc/nginx/sites-available/default,添加:upstream jenkins_cluster {
server <master1-ip>:8080;
server <master2-ip>:8080;
}
server {
listen 80;
location / {
proxy_pass http://jenkins_cluster;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
重启Nginx:sudo systemctl restart nginx。/etc/default/jenkins中的JAVA_ARGS,设置合理的初始堆(-Xms)和最大堆(-Xmx),例如:JAVA_ARGS="-Xms2g -Xmx4g -Djava.awt.headless=true"
避免堆内存过大导致Full GC停顿。Jenkinsfile定义流水线(纳入Git版本控制),替代Web界面配置,提高可维护性;parallel指令拆分任务,例如:pipeline {
agent any
stages {
stage('Build') {
steps { sh 'mvn clean package' }
}
stage('Test') {
parallel {
stage('Unit Test') { steps { sh 'mvn test' } }
stage('Integration Test') { steps { sh 'mvn verify -DskipUnitTests' } }
}
}
}
}
Pipeline Utility Steps插件缓存Maven/Gradle依赖(如dir('target') { cache 'libs' }),减少重复下载时间。Manage Jenkins > Plugin Manager更新插件(修复安全漏洞、提升性能);docker标签的节点运行Docker构建任务);jenkinsci/blueocean:lts镜像),实现环境隔离(避免“在我机器上能运行”的问题),同时减少Master节点的资源占用。Manage Jenkins > Configure System设置“保留构建天数”为30天);post { always { cleanWs() } }步骤),释放磁盘空间;jenkins_home目录(包含配置、构建记录、制品),可使用rsync或BorgBackup工具,确保故障时快速恢复。