Linux 上高效管理 Jenkins 插件的实用技巧
一 安装与卸载的三种方式
- Web UI:进入 Manage Jenkins → Manage Plugins,在 Available 搜索并勾选所需插件,选择 Install without restart 或 Install and restart。适合交互式按需安装。
- Jenkins CLI:使用 jenkins-cli.jar 安装,支持从更新中心、URL 或本地 .hpi 安装,并可联动重启。
示例:
- 在线安装并重启
java -jar jenkins-cli.jar -s http://your-jenkins-url/ install-plugin git -restart
- 本地 .hpi 安装(需指定插件名)
java -jar jenkins-cli.jar -s http://your-jenkins-url/ install-plugin = -deploy < git.hpi -name git
- 手动放置 .hpi:将插件 .hpi 放入 $JENKINS_HOME/plugins(常见路径 /var/lib/jenkins/plugins),然后重启 Jenkins 生效。
- 卸载:UI 中在 Installed 选择插件并执行 Uninstall;或手动删除对应 .hpi 后重启。
- 建议:安装时优先使用 -deploy 实现“安装即部署”,必要时再配合 -restart 完成“安全重启”。
二 更新与回滚的稳妥做法
- 检查与批量更新:在 Manage Plugins → Updates 查看可用更新,按需勾选并执行更新;更新完成后按提示重启。
- CLI 更新:对已安装插件再次执行 install-plugin 即可升级;结合 -restart 完成重启。
- 回滚思路:
- 有备份时,将 $JENKINS_HOME/plugins 目录回滚到升级前快照,再重启;
- 无备份时,先卸载新版本,再从 .hpi 安装目标旧版本,最后重启。
- 安全实践:更新前备份 $JENKINS_HOME(至少包含 plugins/ 与 config.xml),并在灰度/维护窗口执行。
三 加速下载与离线环境
- 更新中心镜像:修改 $JENKINS_HOME/updates/default.json 中的更新站点为国内镜像,可显著提升下载速度。
- 离线安装:在可联网环境下载所需插件的 .hpi 及其依赖,拷贝到 $JENKINS_HOME/plugins 后重启;或把多个 .hpi 放入同一目录,使用 CLI 批量安装并指定目录源。
- 可用性提示:若实例无法访问更新中心元数据,Web UI 与 CLI 在线安装会受限,此时可优先采用 .hpi 手动安装方式。
四 批量操作与自动化脚本
- SSH 方式(推荐):在 系统管理 → 全局安全配置 → SSH Server 开启 SSH 端口,使用系统 SSH 客户端执行 CLI 命令。
示例:
- 列出插件
ssh -l admin -p 50000 jenkins.example.com list-plugins
- 安装插件并重启
ssh -l admin -p 50000 jenkins.example.com install-plugin workflow-aggregator -restart
- CLI Jar 方式:
- 批量安装(从更新中心)
java -jar jenkins-cli.jar -s http://jenkins.example.com/ install-plugin git pipeline-stage-view blueocean -restart
- 从本地目录批量安装
java -jar jenkins-cli.jar -s http://jenkins.example.com/ install-plugin /opt/plugins//*.hpi -deploy
- 提示:SSH 方式免传 jenkins-cli.jar,命令更简洁;CLI Jar 方式更通用。
五 稳定性与兼容性最佳实践
- 版本匹配:保持 Jenkins 版本 与 插件版本 兼容。自 2.346.3 起需 JDK 11+;若仍在 2.346.1(最后一个支持 JDK 8 的 LTS),插件选择需更谨慎。
- 更新策略:定期在 Updates 页巡检,优先更新安全修复版本;生产环境建议分批更新并观察。
- 依赖与冲突:安装/更新会自动拉取依赖,但不同插件间仍可能存在冲突;变更前在测试环境验证。
- 权限与安全:使用最小权限的 Jenkins 用户运行服务,避免以 root 直接运行;插件目录与配置文件权限应受控。
- 备份与回滚:变更前后备份 $JENKINS_HOME,保留可回滚点;对关键业务流水线建立演练与回滚预案。