温馨提示×

jenkins如何备份centos配置

小樊
46
2025-11-16 03:31:56
栏目: 智能运维

在 CentOS 上备份 Jenkins 配置的实用方案

一 核心备份范围与默认路径

  • 备份的核心是 JENKINS_HOME(默认 /var/lib/jenkins),其中包含:
    • 全局配置:config.xml
    • 作业配置:jobs/ 下各作业的 config.xml
    • 插件:plugins/(建议连同版本一起备份)
    • 用户与权限:users/secrets/(含 credentials.xml 等敏感文件)
    • 可选:构建历史 jobs//builds/(体积大,可按需取舍)
  • 系统级配置与日志(建议一并纳入):
    • 服务配置:/etc/sysconfig/jenkins(RHEL/CentOS 常见)或 /etc/default/jenkins(Debian 系常见)
    • 日志:/var/log/jenkins/jenkins.log
  • 迁移/恢复时,优先保证 JENKINS_HOME 完整;若仅迁移配置,至少保留 config.xml、jobs、plugins、users、secrets 等关键目录与文件。

二 手动一次性备份步骤

  • 确认 JENKINS_HOME(如非默认需替换路径):
    • grep ^JENKINS_HOME /etc/sysconfig/jenkins 或 systemctl show jenkins | grep -i environment
  • 停止服务(减少写入,保证一致性):
    • sudo systemctl stop jenkins
  • 打包备份(示例将日期写入文件名):
    • 备份主目录:
      • sudo tar -czvf /backup/jenkins_home_$(date +%F).tar.gz /var/lib/jenkins
    • 备份系统配置与日志:
      • sudo tar -czvf /backup/jenkins_config_$(date +%F).tar.gz /etc/sysconfig/jenkins /etc/default/jenkins /var/log/jenkins
  • 启动服务:
    • sudo systemctl start jenkins
  • 校验:
    • ls -lh /backup | tail -n 2
    • 可选:tar -tzf /backup/jenkins_home_$(date +%F).tar.gz | head
  • 说明:如系统使用 systemd,也可在备份脚本中使用 systemctl 管理服务;若以 root 运行脚本,sudo 可酌情省略。

三 自动化与增量备份

  • 定时全量备份脚本(含保留策略示例 7 天):
    • 创建脚本 /usr/local/bin/jenkins_backup.sh:
      • #!/bin/bash set -e BACKUP_DIR=“/backup/jenkins” JENKINS_HOME=“/var/lib/jenkins” DATE=$(date +%F_%H%M%S) mkdir -p “$BACKUP_DIR”

        停止服务

        systemctl stop jenkins || true

        全量打包

        tar -czvf “$BACKUP_DIR/jenkins_home_$DATE.tar.gz” -C “$JENKINS_HOME” .

        可选:系统配置与日志

        tar -czvf “$BACKUP_DIR/jenkins_config_$DATE.tar.gz” /etc/sysconfig/jenkins /etc/default/jenkins /var/log/jenkins 2>/dev/null || true

        启动服务

        systemctl start jenkins || true

        清理 7 天前

        find “$BACKUP_DIR” -name “jenkins_*.tar.gz” -mtime +7 -delete echo “Backup finished: $DATE”
    • 赋权与定时:
      • chmod +x /usr/local/bin/jenkins_backup.sh
      • crontab -e 添加:0 2 * * * /usr/local/bin/jenkins_backup.sh
  • 增量备份思路(基于 tar 快照,每周日全量、其余增量):
    • 原理:使用 tar 的 -g snapshot 生成/更新快照文件,周日删除快照并执行全量,其余天执行增量。
    • 参考示例脚本结构(按周切换全量/增量、维护 snapshot 文件),适合对 /var/lib/jenkins 做周期性增量归档。
  • 远程/异地备份(配合 rsync 或 scp):
    • rsync -avz --delete /backup/jenkins/ user@backup-host:/data/jenkins/
    • 或 scp /backup/jenkins_home_*.tar.gz user@backup-host:/data/backups/
    • 建议将备份目录挂载到独立磁盘或网络存储,避免单点故障。

四 插件化与迁移恢复

  • 使用 ThinBackup 插件(可视化与定时):
    • 安装:Manage Jenkins → Plugins → 搜索并安装 ThinBackup
    • 配置:Manage Jenkins → ThinBackup → 设置备份目录、计划任务(如每日/每周)、保留数量
    • 使用:可手动触发备份;恢复时在同一页面选择备份点并执行恢复(适合快速回滚)
  • 迁移到新服务器(最小化步骤):
    • 在新机器安装同版本 Jenkins(或兼容版本)并首次启动一次以生成目录结构
    • 停止新机器 Jenkins:systemctl stop jenkins
    • 将旧机的 JENKINS_HOME 完整拷贝到新机相同路径(或按需修改 JENKINS_HOME 后启动)
    • 如仅迁移配置,至少拷贝:config.xml、jobs、plugins、users、secrets(缺失插件会导致任务不可用)
    • 启动新机 Jenkins:systemctl start jenkins,登录验证作业与插件是否正常
  • 凭证与敏感信息:
    • 备份 secrets/credentials.xml;注意其为加密存储,跨实例恢复需确保主密钥一致或使用 Jenkins 的凭证迁移流程。

0