笔者计划采用以下方案备份 Jenkins 的数据:
- 安装“Job Configuration History”插件,用于记录各个 Job 以及系统配置的变更历史,可以随时回滚配置。(使用效果类似 Git 的版本管理,好评)
- 另外,定期对 Jenkins 的主目录做一次备份。
关于备份主目录,虽然 Jenkins 有两个用于备份的插件,但笔者试用之后还是放弃了:
- Backup :必须手动操作。
- ThinBackup :可以只备份配置文件,比较轻量级,但是不能备份整个 Jenkins 主目录。
因此,笔者决定自己创建一个定期备份的 Job :
pipeline {agent {label 'master'}options {timestamps()timeout(time: 60, unit: 'MINUTES')disableConcurrentBuilds()}triggers {cron('H 22 * * 7') // 每周日执行一次}stages {stage("备份 Jenkins 主目录") {steps {sh """cd ${env.JENKINS_HOME}/../zip -rq jenkins_home_backup_`date +%Y%m%d`.zip ${env.JENKINS_HOME}/find `ls jenkins_home_backup_*.zip` ! -mtime -30 | xargs -n 1 rm -f // 删掉 30 天以前的备份"""}}}
}
进一步地,为了避免单点故障,应该将备份的包保存到其它主机上。