在 Ubuntu 上升级 Jenkins 的完整步骤
一 升级前准备
- 选择维护窗口并通知团队,避免业务高峰期;预留回滚时间。
- 备份关键数据与配置:
- 备份 JENKINS_HOME(默认 /var/lib/jenkins):
sudo systemctl stop jenkins
BACKUP_DIR=“/opt/jenkins_backup_$(date +%Y%m%d_%H%M%S)”
sudo mkdir -p $BACKUP_DIR
sudo tar -czf $BACKUP_DIR/jenkins_home.tar.gz /var/lib/jenkins
- 备份当前 WAR 包(常见路径 /usr/share/java/jenkins.war 或 /usr/share/jenkins/jenkins.war):
sudo cp /usr/share/java/jenkins.war $BACKUP_DIR/
- 检查环境与兼容性:
- 当前 Java 版本:java -version
- 当前 Jenkins 版本:sudo java -jar /usr/share/java/jenkins.war --version
- 磁盘空间:df -h /var/lib/jenkins /usr/share/java
- Java 版本要求:
- Jenkins ≥ 2.405 需要 Java 11+
- Jenkins ≥ 2.463 需要 Java 17 或 Java 21
- 如需升级 Java(示例安装 OpenJDK 17):
sudo apt update && sudo apt install -y openjdk-17-jdk
echo “export JAVA_HOME=$(dirname $(dirname $(readlink -f /usr/bin/java)))” | sudo tee -a /etc/default/jenkins
以上准备可显著降低升级风险并确保版本兼容。
二 三种升级方式
- APT 官方仓库升级(推荐,适用于通过官方仓库安装的环境)
- 确保已添加官方仓库:
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
sudo sh -c ‘echo “deb https://pkg.jenkins.io/debian-stable binary/” > /etc/apt/sources.list.d/jenkins.list’
- 执行升级:
sudo apt update
apt list -a jenkins # 查看可安装版本
sudo apt install jenkins # 升级到最新稳定版
或指定版本:sudo apt install jenkins=2.528.2
- 重启并验证:
sudo systemctl restart jenkins
sudo systemctl status jenkins
访问 http://your-jenkins:8080,在“系统管理 → 关于 Jenkins”查看版本
- 手动替换 WAR 包(通用,适用于无法使用包管理器的场景)
- 停止服务:sudo systemctl stop jenkins
- 备份并替换 WAR(路径以实际为准):
JENKINS_DIR=“/usr/share/java”
sudo cp $JENKINS_DIR/jenkins.war $JENKINS_DIR/jenkins.war.bak
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/latest/jenkins.war -P /tmp
sudo cp /tmp/jenkins.war $JENKINS_DIR/
sudo chown jenkins:jenkins $JENKINS_DIR/jenkins.war
- 启动并验证:
sudo systemctl start jenkins
sudo systemctl status jenkins
- Web 界面自动升级(仅限小版本,谨慎使用)
使用管理员登录,进入 系统管理 → 自动升级,如有可用更新,点击 立即升级 并等待自动重启。网络不稳或跨大版本不建议使用。
三 升级后验证与回滚
- 验证:
- 访问 http://your-jenkins:8080,在 系统管理 → 关于 Jenkins 确认版本号。
- 查看服务状态:sudo systemctl status jenkins
- 回滚(出现异常时):
- APT 安装:sudo apt install jenkins=<旧版本号>
- WAR 安装:停止服务,将备份的 jenkins.war 拷回原路径并启动:
sudo systemctl stop jenkins
sudo cp /opt/jenkins_backup_YYYYMMDD_HHMMSS/jenkins.war /usr/share/java/jenkins.war
sudo systemctl start jenkins
以上验证与回滚步骤可快速确认升级结果并在必要时恢复。
四 常见问题与注意事项
- Java 不兼容会导致启动失败或频繁报错,升级前务必确认 Java 11/17/21 的版本要求并正确设置 JAVA_HOME。
- 升级前一定要备份 JENKINS_HOME 和 jenkins.war,并预留回滚窗口。
- 避免跨多个大版本一次性升级,建议按 LTS 版本逐步升级,并在测试环境验证插件兼容性。
- 如通过 Docker 运行,直接更新镜像并重启容器:docker pull jenkins/jenkins:lts && docker restart jenkins。
- 若使用代理或内网镜像,APT 源或 WAR 下载可能受影响,可临时切换为可用镜像或离线包。