在 Ubuntu 上部署 Jenkins,除了“能跑起来”,更关键的是稳定、可维护、易扩展。下面按实战经验给你一套比较完整的技巧与最佳实践,适合生产环境。
wget -q -O - www.example.com | sudo apt-key add -
sudo sh -c 'echo deb www.example.com binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt update
sudo apt install jenkins
✅ 原因:
Jenkins 对 Java 版本非常敏感
| Jenkins 版本 | 推荐 Java |
|---|---|
| 2.401+ | Java 17 ✅ |
| 老版本 | Java 11 |
sudo apt install openjdk-17-jdk
java -version
⚠️ 不建议:
| 方式 | 适用场景 |
|---|---|
| apt 安装 | 单机、传统服务器 |
| Docker | 云环境、CI 隔离 |
| Docker + systemd | 生产较推荐 |
java -jarUbuntu 默认:
用户:jenkins
目录:/var/lib/jenkins
检查:
ps aux | grep jenkins
编辑:
sudo vim /etc/default/jenkins
HTTP_PORT=8081
重启:
sudo systemctl restart jenkins
sudo ufw allow 8081
sudo ufw enable
sudo apt install nginx
server {
listen 80;
server_name jenkins.example.com;
location / {
proxy_pass http://127.0.0.1:8081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
✅ 好处:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
✅ 必装:
❌ 避免:
/var/lib/jenkins
✅ 推荐备份:
jobs/
plugins/
credentials.xml
config.xml
users/
secrets/
示例脚本:
tar czf jenkins-backup-$(date +%F).tar.gz /var/lib/jenkins
编辑:
sudo vim /etc/default/jenkins
示例:
JAVA_OPTS="-Xms512m -Xmx2048m"
✅ 强烈建议:
| 类型 | 推荐 |
|---|---|
| SSH Agent | ✅ 稳定 |
| Docker Agent | ✅ 弹性 |
| Web Agent | ❌ 不推荐 |
pipeline {
agent {
docker { image 'maven:3.9' }
}
stages {
stage('Build') {
steps {
sh 'mvn clean package'
}
}
}
}
sudo apt update
sudo apt upgrade jenkins
升级前:
Manage Jenkins → System → Build Discarders
防止磁盘爆满。
| 问题 | 解决 |
|---|---|
| 插件安装失败 | 换国内源 |
| 端口冲突 | 改默认 8080 |
| 磁盘爆满 | 定期清理历史 |
| 构建卡死 | 不用 master 构建 |
| 权限问题 | 检查 JENKINS_USER |
Nginx
↓
Jenkins Master(Ubuntu)
↓
Docker / SSH Agents
如果你愿意,我可以:
你现在是用 Jenkins 做什么类型的项目?