三,Jenkins数据迁移(插件) - 图2

一,ThinBackup 插件迁移

Jenkins 中使用 ThinBackup 插件实现数据备份与恢复

系统环境:

  • Jenkins 版本:2.213

一、简介

在部署完 Jenkins 后首先要准备的就是数据备份问题,尤其是在生产环境下的 Jenkins,如果数据丢失很可能导致项目上线和开发时间受到影响,所以备份数据很重要。还好,Jnekins 中存在数据备份插件 ThinBackup,方便我们通过界面化方式对数据进行备份与恢复。

二、安装 ThinBackup 插件

ThinBackup 是 Jenkins 备份插件,由于默认是没有安装此插件的,所以需要进入 系统管理->插件管理->可选插件 搜索 ThinBackup,然后进行安装操作:

三,Jenkins数据迁移(插件) - 图3

三、配置 ThinBackup 插件

进入 系统管理->ThinBackup ,可以看到 Backup Now、Restore、Settings 三个选项:

三,Jenkins数据迁移(插件) - 图4

我们先进入 Settings 来管理备份配置,其中几项参数推荐配置:

  • Backup directory:备份文件的存储目录,这个是必填项。
  • Backup schedule for full backup:全量备份计划配置,以 cron 表示法设定备份时间。
  • Backup schedule for diifferential backup:差量备份计划配置,以 cron 表示法设定备份时间。
  • Max number of backup sets:最大备份数量。
  • Backup build results:备份构建结果。

全量与差量备份选择其一即可,推荐全量备份,差量备份可能会出现一些意外问题。

三,Jenkins数据迁移(插件) - 图5

  1. Backup directory 设置备份的目录,注意运行 jenkins 的目录要对它有写的权限。
  2. Backup schedule for full backups 设置定时任务,Example:
  3. 0 12 * * 1-5 Executes on 12:00 every weekday (Mo-Fr)
  4. Backup schedule for differential backups 设置差异化备份的计划,也就是增量备份,仅仅存储上一次完整备份的之后的更改部分。 对于增量备份,我们必须要有一个完整备份。
  5. Max number of backup sets 备份的最大数量数,默认为 -1.表示无限制。
  6. Files excluded from backup (regular expression) 备份需要排除的目录。
  7. Wait until Jenkins/Hudson is idle to perform a backup 等待 jenkins 进入“Quiet Mode”(安静模式)的时候去进行备份。安静模式期间不处理任何任务。 建议勾选。
  8. Force Jenkins to quiet mode after specified minutes 最长等待进入安静模式的时间,当超过这个时间,就会强制进入 安静模式。
  9. Backup build results 备份构建的结果,这个可能会产生大量的数据。占用磁盘会比较大。
  10. Backup build archive 只有勾选了 Backup build results 才会出现这个选项。备份存档,
  11. Backup only builds marked to keep 如果勾选此项,只备份被标记为 `Keep this build forever` 的上的构建结果。只有勾选了 Backup build results 才会出现这个选项。
  12. Backup 'userContent' folder 如果启用该备份,userContent 目录($JENKINS_HOME/userContent)将会备份。 如果有软链接部分,不能备份该内容。
  13. Backup next build number file 如果启用该项,则 nextBuildNumber 也会进行备份。
  14. Backup plugins archives 启用该项的话,会进行备份插件存档。
  15. Backup additional files 备份特定的文件,可以通过正则进行匹配。
  16. Clean up differential backups 如果启用了该选项的话,在执行完整备份的时候,会删除差异化备份。
  17. Move old backups to ZIP files 将老的备份文件进行压缩。
  1. 如果我们不勾选任何 参数,不勾选 Backup build results(默认勾选的),默认备份的内容包含 : 用户信息(dongjiaxiao/config.xml),工程信息(config.xml,svnexternals.txt) 等。
  2. 如果我们勾选 Backup build results(默认勾选的) 会在 工程信息目录下(jobs/xxx/builds) 会有各个执行编号的输出和配置文件内容。
  3. 如果我们勾选 Backup plugins archives 会在备份目录下多一个 plugins 目录,里面包含着我们安装的插件。
  4. 如果我们勾选 Backup ‘userContent’ folder 就是多备份 $JENKINS_HOME/userContent下 的内容。 多个备份目录 userContent。
  5. 如果我们勾选 Move old backups to ZIP files 会对之前备份文件进行压缩。

三,Jenkins数据迁移(插件) - 图6

四、进行数据备份与恢复测试

下面将测试一下该插件是否能够正常备份与恢复,现有 Jnekins 中存在四个任务,点击备份按钮进行手动备份,然后删除一些现有 Jnekins 的任务,再执行备份还原操作,之后重新读取数据,观察是否数据恢复。

执行备份前记录一下,现有的 Jnekins 中的任务,现有存在四个任务。

三,Jenkins数据迁移(插件) - 图7

然后进入 ThinBackup 中,点击 Backup Now 备份按钮:

三,Jenkins数据迁移(插件) - 图8

接下来删除之前存在的四个任务中的三个,方便后续执行备份恢复,测试能否恢复之前存在的任务:

三,Jenkins数据迁移(插件) - 图9

再次进入 ThinBackup 中,点击 Restore 备份恢复按钮,进入备份恢复界面:

三,Jenkins数据迁移(插件) - 图10

点击 Restore 按钮执行备份恢复:

三,Jenkins数据迁移(插件) - 图11

执行完成后,点击 系统设置->读取设置 让 Jenkins 重新读取数据:

三,Jenkins数据迁移(插件) - 图12

等待一段时间,重新加载数据完成,可以看到任务数目已经回复到备份前:

三,Jenkins数据迁移(插件) - 图13

注意,在之前设置配置中配置了备份规则,Jenkins 会自动按照备份规则执行数据备份,无需人为手动点击备份按钮。

二,数据复制迁移

系统环境:

  • Jenkins 版本和Linux版本一致

将Jenkins的主目录(var/lib/jenkins) 对应的文件 复制到新机器的目录。

三,常用插件

Configuration Slicing 批量设置构建保留天数,个数