一,ThinBackup 插件迁移
Jenkins 中使用 ThinBackup 插件实现数据备份与恢复
系统环境:
- Jenkins 版本:2.213
一、简介
在部署完 Jenkins 后首先要准备的就是数据备份问题,尤其是在生产环境下的 Jenkins,如果数据丢失很可能导致项目上线和开发时间受到影响,所以备份数据很重要。还好,Jnekins 中存在数据备份插件 ThinBackup,方便我们通过界面化方式对数据进行备份与恢复。
二、安装 ThinBackup 插件
ThinBackup 是 Jenkins 备份插件,由于默认是没有安装此插件的,所以需要进入 系统管理->插件管理->可选插件 搜索 ThinBackup,然后进行安装操作:
三、配置 ThinBackup 插件
进入 系统管理->ThinBackup ,可以看到 Backup Now、Restore、Settings 三个选项:
我们先进入 Settings 来管理备份配置,其中几项参数推荐配置:
- Backup directory:备份文件的存储目录,这个是必填项。
- Backup schedule for full backup:全量备份计划配置,以 cron 表示法设定备份时间。
- Backup schedule for diifferential backup:差量备份计划配置,以 cron 表示法设定备份时间。
- Max number of backup sets:最大备份数量。
- Backup build results:备份构建结果。
全量与差量备份选择其一即可,推荐全量备份,差量备份可能会出现一些意外问题。
Backup directory 设置备份的目录,注意运行 jenkins 的目录要对它有写的权限。
Backup schedule for full backups 设置定时任务,Example:
0 12 * * 1-5 Executes on 12:00 every weekday (Mo-Fr)
Backup schedule for differential backups 设置差异化备份的计划,也就是增量备份,仅仅存储上一次完整备份的之后的更改部分。 对于增量备份,我们必须要有一个完整备份。
Max number of backup sets 备份的最大数量数,默认为 -1.表示无限制。
Files excluded from backup (regular expression) 备份需要排除的目录。
Wait until Jenkins/Hudson is idle to perform a backup 等待 jenkins 进入“Quiet Mode”(安静模式)的时候去进行备份。安静模式期间不处理任何任务。 建议勾选。
Force Jenkins to quiet mode after specified minutes : 最长等待进入安静模式的时间,当超过这个时间,就会强制进入 安静模式。
Backup build results 备份构建的结果,这个可能会产生大量的数据。占用磁盘会比较大。
Backup build archive 只有勾选了 Backup build results 才会出现这个选项。备份存档,
Backup only builds marked to keep 如果勾选此项,只备份被标记为 `Keep this build forever` 的上的构建结果。只有勾选了 Backup build results 才会出现这个选项。
Backup 'userContent' folder 如果启用该备份,userContent 目录($JENKINS_HOME/userContent)将会备份。 如果有软链接部分,不能备份该内容。
Backup next build number file 如果启用该项,则 nextBuildNumber 也会进行备份。
Backup plugins archives 启用该项的话,会进行备份插件存档。
Backup additional files 备份特定的文件,可以通过正则进行匹配。
Clean up differential backups 如果启用了该选项的话,在执行完整备份的时候,会删除差异化备份。
Move old backups to ZIP files 将老的备份文件进行压缩。
- 如果我们不勾选任何 参数,不勾选 Backup build results(默认勾选的),默认备份的内容包含 : 用户信息(dongjiaxiao/config.xml),工程信息(config.xml,svnexternals.txt) 等。
- 如果我们勾选 Backup build results(默认勾选的) 会在 工程信息目录下(jobs/xxx/builds) 会有各个执行编号的输出和配置文件内容。
- 如果我们勾选 Backup plugins archives 会在备份目录下多一个 plugins 目录,里面包含着我们安装的插件。
- 如果我们勾选 Backup ‘userContent’ folder 就是多备份 $JENKINS_HOME/userContent下 的内容。 多个备份目录 userContent。
- 如果我们勾选 Move old backups to ZIP files 会对之前备份文件进行压缩。
四、进行数据备份与恢复测试
下面将测试一下该插件是否能够正常备份与恢复,现有 Jnekins 中存在四个任务,点击备份按钮进行手动备份,然后删除一些现有 Jnekins 的任务,再执行备份还原操作,之后重新读取数据,观察是否数据恢复。
执行备份前记录一下,现有的 Jnekins 中的任务,现有存在四个任务。
然后进入 ThinBackup 中,点击 Backup Now 备份按钮:
接下来删除之前存在的四个任务中的三个,方便后续执行备份恢复,测试能否恢复之前存在的任务:
再次进入 ThinBackup 中,点击 Restore 备份恢复按钮,进入备份恢复界面:
点击 Restore 按钮执行备份恢复:
执行完成后,点击 系统设置->读取设置 让 Jenkins 重新读取数据:
等待一段时间,重新加载数据完成,可以看到任务数目已经回复到备份前:
注意,在之前设置配置中配置了备份规则,Jenkins 会自动按照备份规则执行数据备份,无需人为手动点击备份按钮。
二,数据复制迁移
系统环境:
- Jenkins 版本和Linux版本一致
将Jenkins的主目录(var/lib/jenkins) 对应的文件 复制到新机器的目录。
三,常用插件
Configuration Slicing 批量设置构建保留天数,个数