您现在的位置是:首页 >学无止境 >Jenkins备份与还原(包括秘钥)网站首页学无止境
Jenkins备份与还原(包括秘钥)
前言
Jenkins作为一款广泛使用的CI/CD工具,能够帮助开发团队快速构建、测试和部署项目。在日常开发中,开发人员通常通过点击配置好的Job,将Web项目部署到测试或生产环境,或者生成各种成果物(如exe、zip等)。然而,一旦Jenkins系统出现故障或数据丢失,可能会导致整个项目的开发周期受到影响,甚至造成不可逆的损失。
为了确保Jenkins系统的稳定性和数据的安全性,定期备份和还原Jenkins配置及数据显得尤为重要。特别是Jenkins中的秘钥、Job配置、插件信息等关键数据,一旦丢失,恢复起来将非常麻烦。因此,掌握Jenkins的备份和还原方法,尤其是如何备份和还原秘钥,是每个使用Jenkins的开发人员和运维人员的必备技能。
在本篇博客中,小编将为大家详细介绍如何对Jenkins进行全面的备份(包括秘钥),以及在需要时如何快速还原,确保系统的高可用性和数据的安全性。
一、Jenkins底层核心结构
| jobs | 存储所有任务(Jobs)配置和数据 |
| users | 存储 Jenkins 用户的相关信息 |
| plugins | 存储 Jenkins 已安装的插件及其配置信息 |
| logs | 存储 Jenkins 的运行日志文件 |
| secrets | 存储加密秘钥等敏感数据 |
| fingerprints | 存储 Jenkins 的文件指纹信息 |
| nodes | 存储 Jenkins 节点(Agent)的配置信息 |
| 配置文件 | |
| config.xml | 全局配置文件(包括系统设置、安全配置等) 注:可配置workspace路径 |
| jenkins.xml | 安装配置文件(包括Jenkins的安装路径、Java路径和日志路径等) 注:对已经下载的jenkins,可以迁移到其他磁盘 |
| hudson.model.UpdateCenter.xml | 存储了 Jenkins 更新中心的配置信息,包括插件下载的镜像地址等 |
二、Jenkins备份(包括秘钥)
备份使用的工具是:Jenkins插件ThinBackup

1、在Mange Jenkins->Plugins->Available plugins中,搜索并下载ThinBackup插件。
2、下载后能够在Installed plugins中找到刚下载的插件,表明下载成功。

3、Linux在Mange Jenkins->System->ThinBackup Configuration进行备份配置。

window版本的Jenkins则是在Mange Jenkins->ThinBackup->Settings中进行配置。

4、配置ThinBackup插件。


由于Thinbackup插件不直接支持备份各种加密信息,所以需要通过Backup additional files这个选项,结合正则表达式对其进行备份,这样在进行Jenkins还原后,对应的秘钥、凭证等加密信息就无需再重新配置。
^(secrets|.*.key|.*.Secret|.*.consoleAnnotator|.*.MAC|.*.serverCookie|.*.crumbSalt|.*.KEY|.*.mac|.*.not-so-secret)
5、配置好后,在Manage Jenkins->ThinBackup,点击Backup now进行备份。

6、在对应备份文件的保存路径中,便能够看到生成的Jenkins备份文件。
三、Jenkins还原(包括秘钥)
还原也是使用 Jenkins插件ThinBackup
1、在Jenkins中,Manage Jenkins->ThinBackup处,点击Restore,根据自己的需求进行选择,最后点击Restore,并重启Jenkins即可。

四、遇到的问题(还原)
1、Jenkins还原后,对应的包含Jenkins用户信息的users文件夹没有还原成功?
解决方法:将现在的users文件夹删除掉,将备份文件中的users文件夹复制过来,Jenkins重启。
2、Jenkins还原后,对应的秘钥和凭证还是显示报错,需要重新配置?
解决方法:将现在的secrets文件夹删除掉,将备份文件中的secrets文件夹复制过来,Jenkins重启。
3、那为什么不直接将整个Jenkins文件夹备份,在还原时,直接将整个文件夹进行替换即可?
(1)ThinBackup通过Cron表达式能够进行定期备份,直接备份需要额外配置
(2)通过直接备份的方式进行还原,新Jenkins的各种配置,需要保持与旧Jenkins相同,灵活性不高,而通过ThinBackup插件的方式,在还原时,不仅不需要关心新Jenkins如何配置的,而且还可以选择性地还原部分数据(如只还原任务配置而不还原构建历史)
五、总结
本篇主要是介绍了Jenkins的核心结构,并讲解了Jenkins的备份和还原(包含秘钥),以及对一些还原过程中常见的问题进行解答。





QT多线程的5种用法,通过使用线程解决UI主界面的耗时操作代码,防止界面卡死。...
U8W/U8W-Mini使用与常见问题解决
stm32使用HAL库配置串口中断收发数据(保姆级教程)
分享几个国内免费的ChatGPT镜像网址(亲测有效)
Allegro16.6差分等长设置及走线总结