在 CentOS 上升级 Jenkins 的推荐做法
一 升级前准备
- 备份关键数据:优先备份 $JENKINS_HOME(默认 /var/lib/jenkins),以及 /etc/sysconfig/jenkins(RPM 包安装时)、主目录配置、插件目录与关键作业配置。示例:
sudo tar czf jenkins_home_$(date +%F).tgz -C /var/lib/jenkins .
- 确认当前版本与运行方式:
sudo systemctl status jenkins;登录 Web 管理端底部查看版本;确认是通过 RPM 包 还是 WAR 包运行。
- 检查并准备 Java:Jenkins 2.357+ 要求 Java 11;从 2.401.3 起要求 Java 17。执行
java -version 核验,必要时安装对应 OpenJDK 17/21(如 sudo yum install java-17-openjdk-devel -y)。
- 选择升级策略:跨多个大版本建议采用“停机+备份+替换 WAR”或“RPM 包升级”;小版本可考虑 Web 端自动升级(更便捷但有兼容性风险)。
二 升级方式一 RPM 包管理升级(推荐)
- 更新软件源并升级:
sudo yum update jenkins -y
- 重启服务:
sudo systemctl restart jenkins
- 验证版本:访问 http://服务器IP:8080,在页面底部确认新版本号。
- 说明:该方式由系统包管理器维护,升级过程简单、可回滚(配合 yum history),适合生产环境。
三 升级方式二 手动替换 WAR 包(通用、可控)
- 停止服务:
sudo systemctl stop jenkins
- 备份旧 WAR 与配置:常见 WAR 路径为 /usr/share/jenkins/jenkins.war 或 /var/lib/jenkins/jenkins.war;执行
sudo cp /usr/share/jenkins/jenkins.war /usr/share/jenkins/jenkins.war.bak
- 下载新 WAR(示例为稳定版镜像):
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/latest/jenkins.war -O /usr/share/jenkins/jenkins.war
- 启动服务:
sudo systemctl start jenkins
- 验证:访问 http://服务器IP:8080 确认版本与功能正常。
四 升级方式三 Web 端自动升级(仅小版本)
- 路径:登录 Web 管理端 → 系统管理 → 或自动升级,按提示下载并替换 jenkins.war,系统会自动备份旧 WAR 并重启。
- 适用场景:小版本迭代;跨多个版本或插件依赖复杂时不建议,容易因依赖不一致导致失败。
五 升级后验证与常见问题处理
- 版本与插件:确认页面版本号;在 插件管理 升级核心与必要插件,重启后再做第二轮备份(此时数据与插件已在新版本下稳定)。
- Java 不匹配:若启动失败或频繁报错,检查
java -version 与 JENKINS_JAVA_CMD 或 /etc/sysconfig/jenkins 中的 JAVA_HOME/JENKINS_JAVA_OPTIONS,确保使用 Java 17/21。
- 插件兼容性:升级后若作业配置或界面异常,优先批量升级插件;个别插件损坏可手动下载 .hpi 放入 $JENKINS_HOME/plugins 后重启。
- 回滚方案:
- RPM 包:使用
sudo yum downgrade jenkins -y 回退到上一版本;
- WAR 包:停止服务,将备份的 jenkins.war.bak 还原为 jenkins.war,再启动服务。