Jenkins自动备份Job配置、主目录的方案

笔者计划采用以下方案备份 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 天以前的备份
                """
            }
        }
    }
}

进一步地,为了避免单点故障,应该将备份的包保存到其它主机上。

你可能感兴趣的:(Linux)