温馨提示×

Jenkins Linux版如何进行备份恢复

小樊
40
2025-12-14 05:28:18
栏目: 智能运维

Jenkins Linux版备份与恢复实操指南

一 核心要点与准备

  • 备份的核心是 JENKINS_HOME 目录,Linux 常见路径为 /var/lib/jenkins。该目录包含:config.xml、jobs、plugins、users、secrets、workspace、builds 等关键数据。可在 Manage Jenkins → System Information 查看实际路径。为减少不一致,建议在备份前将实例置于 Quiet Mode(安静模式)或短暂停止服务。恢复时优先保证 Jenkins 版本一致,避免插件/配置不兼容。

二 手动备份与恢复步骤

  • 备份
    1. 建议先进入维护窗口,执行:sudo systemctl stop jenkins(或使用 ThinBackup 的安静模式)。
    2. 打包主目录:sudo tar -czvf jenkins_backup_$(date +%F).tar.gz -C /var/lib/jenkins .
    3. 同时备份系统级配置(不同发行版路径不同):
      • RHEL/CentOS:/etc/sysconfig/jenkins
      • Debian/Ubuntu:/etc/default/jenkins
    4. 将备份文件传输到异地/对象存储,并保留多份与校验信息。
  • 恢复
    1. 在新/原服务器安装与备份时一致的 Jenkins 版本
    2. 如需全量覆盖:sudo systemctl stop jenkins;备份现有目录后解压覆盖至 /var/lib/jenkins
    3. 恢复系统配置到相应路径(/etc/sysconfig/jenkins 或 /etc/default/jenkins)。
    4. 修正权限:sudo chown -R jenkins:jenkins /var/lib/jenkins。
    5. 启动服务:sudo systemctl start jenkins;登录界面验证 配置、插件、任务 是否正常。

三 使用 ThinBackup 插件进行自动化备份与恢复

  • 安装与配置
    1. Manage Jenkins → Manage Plugins 安装 ThinBackup
    2. 进入 Manage Jenkins → ThinBackup → Settings,配置:
      • Backup directory(备份目录)
      • Backup schedule(如:0 2 * * * 每日 2 点)
      • Full/Diff 备份策略与保留数量(Max number of backup sets)
      • Files excluded from backup(常用:/workspace/,可减少体积)
      • 选项:Backup build results、Backup user content、Backup additional files 等。
    3. 可点击 Backup Now 立即备份。
  • 恢复
    1. ThinBackup → Restore 选择需要的备份集。
    2. 按提示执行恢复并重启 Jenkins。
  • 适用场景:中小型实例、需要 定时与保留策略、希望降低人为操作风险的环境。

四 自动化脚本与增量备份方案

  • Shell 脚本示例(全量)
    • 关键点:备份前停止服务、排除 workspace、保留多份、校验与清理旧备份。
    • 示例:
      • JENKINS_HOME=/var/lib/jenkins
      • BACKUP_ROOT=/backups/jenkins
      • DATE=$(date +%F_%H%M%S)
      • mkdir -p $BACKUP_ROOT
      • sudo systemctl stop jenkins
      • tar -czvf $BACKUP_ROOT/jenkins_$DATE.tar.gz --exclude=$JENKINS_HOME/workspace -C $JENKINS_HOME .
      • sudo systemctl start jenkins
      • 可配合 find $BACKUP_ROOT -mtime +7 -delete 做保留策略
  • 增量与远程备份
    • rsync 增量:rsync -a --delete $JENKINS_HOME/ $BACKUP_ROOT/current/
    • BorgBackup:支持去重、压缩与加密,适合远程/离线归档(示例:borg create backup::jenkins-$DATE $JENKINS_HOME)。
  • 定时任务
    • 将脚本加入 crontab,例如:0 2 * * * /opt/backup/jenkins_backup.sh。

五 迁移与恢复注意事项

  • 版本一致:迁移/恢复时尽量保持 Jenkins 版本一致,再逐步升级插件与核心。
  • 安全材料:secrets/master.key 关乎凭据与安全域,必须妥善备份与恢复;迁移后若密钥变更,可能导致凭据不可用。
  • 构建产物取舍:为降低体积可只备份元数据(不备份 workspace 与大量 artifacts),必要时在恢复后触发重建。
  • 权限与属主:恢复后确保 /var/lib/jenkins 属主为 jenkins:jenkins,否则可能出现无法启动或权限错误。
  • 验证与演练:定期做 恢复演练备份完整性校验(如校验和/还原测试),并保留 离线/异地 副本以应对灾难恢复。

0