记一次Jenkins版本升级故障处理记录

一.背景

由于需要配合DBA人员给jenkins安装第三方的SQL质量审核插件(云和恩墨公司开发的SQM平台,详情见https://www.enmotech.com/web/classify/25.html),在手动上传jenkins插件安装过程中发现当前jenkins版本偏低,安装该插件需要安装较多的前置依赖插件,否则会导致不兼容和冲突,引起某些jenkins自身功能无法使用。于是决定升级jenkins版本。

二.原始操作过程

1.由于jenkins是使用tomcat部署war包的形式,于是首先备份webapps下的jenkins目录,如下图

当时没仔细看该目录下的数据内容,误以为jenkins的所有前台配置和数据都存放在改目录下。备份后还考虑到磁盘空间的关系,把备份转移到了/data/目录下,正好把$jenkins_home变量中所定义的jenkins数据目录给覆盖了,从而没有形成有效备份。后来了解到该数据目录可通过jenkins的配置页面(依次点击系统管理-系统配置)查到,如下图

2.接着下载了新版的jenkins包,并替换到tomcat的webapps目录下,然后重启tomcat,重启完毕后打开jenkins发现提示部分插件不兼容和冲突,点击插件管理里的已安装项,整个插件相关页面抛出java异常exception,无法正常显示,影响jenkins正常使用。

3.于是准备先还原到上一版本,不影响正常使用。由于启动新版本的时候默认也使用的/data/jenkins作为$jenkins_home,即jenkins系统数据目录,所以在启动的同时把里面的config.xml文件一并展开覆盖了,而confg.xml里存放着如版本号信息,权限控制信息,工程视图等等。刚好和备份文件也是同一个目录,所以导致jenkins无法正常启动,日志报错。

4.在没有服务器快照和对应目录的备份的情况下,只能先把/data/jenkins/下的jobs,secret,plugins,users,node,userContent,updates,jenkins.plugins.publish_over_ssh.BapSshPublisherPlugin.xml等目录和文件先保留在/data/jenkins/下,争取保留尽可能多的原配置和数据,之后删除其余文件,并使用新版的jenkins的war包启动,重新部署jenkins。

5.启动后,跳过插件更新,并把插件源的配置改成清华大学镜像源的地址,加速更新速度,之后把其他不兼容和需要升级的插件也升级一下,全部工程,和SSH远程服务器连接配置恢复,这两比较关键,重新配置工作量巨大,且不同项目存在差异性。后面就是重建视图,然后点击左侧“用户列表”菜单,根据构建记录重新创建角色和用户,并对应授权。

三.心得后记

1.此次安装插件可谓顾此失彼,插件是顺利安装了,但却由于人为疏忽影响了系统的正常使用,首先是备份的问题,必须首先确认当前运行版本的jenkins目录是在/data/jenkins下,还是/root/.jenkins/下(某些老版本默认设置),还是自定义的目录,实在不济可以考虑全目录备份,这是最稳妥的,也不会丢失数据,若文件较大,可以考虑删除workspace下构建生成的包,压缩备份文件,单独备份可参考https://blog.csdn.net/huaqiangli/article/details/79201831

2.可使用Jenkins插件ThinBackup来进行配置数据的备份,功能强大,备份和还原都很方便,也节省大量磁盘空间,一劳永逸

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值