温馨提示×

如何备份和恢复CentOS Jenkins配置

小樊
50
2026-01-02 09:37:37
栏目: 智能运维

CentOS 上备份与恢复 Jenkins 配置的实用指南

一 核心要点与准备

  • 所有配置与数据都在 $JENKINS_HOME,常见路径为 /var/lib/jenkins。可在 Jenkins 管理界面:系统管理 → 系统信息 查看实际路径。备份范围以配置为主,建议包含:config.xml、jobs、users、plugins、secrets;可排除:workspace、builds 的产物、cache、tools、logs 等以减小体积。为提高一致性,备份时建议停止 Jenkins 服务。备份频率建议:开发环境每周一次完整备份;测试环境每日增量、每周完整;生产环境每日多次增量、每日完整。

二 方法一 手动备份与恢复(简单可靠)

  • 备份步骤
    1. 确认主目录:grep -E ‘^JENKINS_HOME=’ /etc/sysconfig/jenkins 或 在 Web 界面查看。
    2. 停止服务:sudo systemctl stop jenkins
    3. 打包关键数据:
      sudo tar czf /mnt/backups/jenkins_$(date +%F).tar.gz -C $JENKINS_HOME config.xml jobs users plugins secrets
    4. 启动服务:sudo systemctl start jenkins
    5. 可选:保留策略(示例保留 7 天)
      find /mnt/backups -name “jenkins_*.tar.gz” -mtime +7 -delete
  • 恢复步骤
    1. 停止服务:sudo systemctl stop jenkins
    2. 备份当前目录(回滚用):sudo cp -a $JENKINS_HOME $JENKINS_HOME.bak.$(date +%F)
    3. 清空并恢复:
      sudo rm -rf $JENKINS_HOME/{config.xml,jobs,users,plugins,secrets}
      sudo tar xzf /mnt/backups/jenkins_YYYY-MM-DD.tar.gz -C $JENKINS_HOME
    4. 权限修正:sudo chown -R jenkins:jenkins $JENKINS_HOME
    5. 启动服务:sudo systemctl start jenkins
    6. 登录 Web 验证任务、用户、插件是否正常。

三 方法二 使用 ThinBackup 插件(可视化与定时)

  • 安装与配置
    1. 管理界面:Manage Jenkins → Manage Plugins 搜索并安装 ThinBackup
    2. 进入:Manage Jenkins → ThinBackup → Settings
      • Backup directory:如 /mnt/backups/jenkins
      • Backup schedule:如 **0 2 * * ***(每日 2:00
      • Files excluded from backup:如 ****/workspace/, /builds//artifacts/
      • 按需勾选:Backup build results、Backup user content、Backup additional files
      • Full backup schedule:如 0 1 * * 0(每周日 1:00 完整备份)
      • Max number of backup sets:如 10
  • 备份与恢复
    • 备份:在 ThinBackup 页面点击 Backup Now 或等待计划任务。
    • 恢复:在 ThinBackup 页面选择备份点执行 Restore(注意恢复前建议停止 Jenkins)。

四 安全与迁移注意事项

  • 密钥与凭据
    • master.key 用于加密 secrets/ 中的凭据,切勿放入常规备份或公开存储;应与备份分开、以最高级别保护。常规备份可包含 secrets/ 目录的其他内容,但恢复时必须确保 master.key 可用且匹配,否则已加密凭据将无法解密。
  • 权限与所有权
    • 恢复后执行:sudo chown -R jenkins:jenkins $JENKINS_HOME;敏感文件如 secrets/ 建议 600config.xml 建议 644
  • 迁移到新服务器
    • 在新机器安装同版本(或兼容版本)Jenkins,先停止服务,将备份解压到目标 $JENKINS_HOME,修正权限后启动;如插件版本不一致,先在 Web 端插件管理按需安装/升级,再重启验证。

五 自动化与异地备份示例

  • 定时任务(crontab)
    • 示例(每日 1:00 执行,日志追加到 /var/log/jenkins_backup.log):
      0 1 * * * /opt/scripts/jenkins_backup.sh >> /var/log/jenkins_backup.log 2>&1
  • 远程备份到 FTP(lftp)
    • 安装:sudo yum install -y lftp
    • 脚本要点:
      lftp -u $FTP_USER,$FTP_PASS $FTP_HOST <<EOF
      set ftp:ssl-allow no
      mirror -R $SOURCE_DIR $FTP_TARGET_DIR
      quit
      EOF
    • 定时:0 2 * * * /opt/scripts/jenkins_ftp_backup.sh
    • 常见问题:脚本换行符需为 LF(可用 dos2unix 修正);FTP 端口 21 与防火墙策略需放行。

0