问题描述

最近在jenkins平台实现iOS APP二维码扫码安装到手机功能时,下载了一个build-name-setter插件,用于显示生成的二维码图片。这个插件下载时提醒了与当前的jenkins版本不兼容。 开始也没当回事,因为下载安装的时候就显示下载安装失败。但是没想到就是这个不当回事的操作,今天在我给研发分配完权限,重启jenkins的时候,带来了大问题。今天重启jenkins后,多名研发反馈,自己昨天使用的job找不到了。登陆系统查看,果真没有了,同时,很多视图下面的job都消失不见了. 事态很严重。。。。。

问题分析

通过对系统最近的变更分析,结合有经验同事的提醒,问题就是不兼容的组件在重启后影响了系统的正常功能。到jenkins/plugins下查看,果真存在build-name-setter及相关依赖的插件。

问题解决

在之前对于jenkins的维护过程中,每日会将jenkins打包成tar.gz进行备份,系统备份区存在最近5天的备份,根据分析,找到3月27号的备份中不包含相关插件。
在恢复过程中也走了弯路,最开始是将备份整个解压,耗时一上午才解压,然后发现解压的问题不正确。 后来发现,直接解压jenkins/plugins文件夹即可:
tar -zxvf jenkins_20220327232901.tar.gz jenkins/plugins

解压完成后,将现在工作区中的plugins重命名为bak_plugins, 然后将刚解压的plugins替换回去,重新启动jenkions,问题解决。

问题反思

  1. 对于jenkins,必须实现每日备份,并根据情况保留一周的备份文件;
  2. 但是由于长久使用,jenkins的备份包越来越大,恢复起来也越来越耗时,建议对影响jenkins维护的plugins目录也单独备份,以便类似问题发生后,能够尽快恢复。
  3. 对于日常jenkins安装新插件之前,先对plugins目录进行备份,万一不兼容,能够迅速恢复;
  4. 需要考虑大数量的情况下,如何迅速恢复jenkins的功能。这个等后续找到方法后再补充。
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐