You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins灾备咨询:EC2双实例实时自动备份与恢复实现方案

Jenkins生产与备份服务器实时同步及灾备恢复方案

一、基础部署准备

  • 两台EC2实例分别部署Jenkins,必须保证生产(Jenkins-Prod)和备份(Jenkins-Backup)的Jenkins版本、插件版本完全一致,避免配置同步后出现兼容性问题
  • 配置EC2安全组,允许两台服务器间的SSH(22端口)通信,同时确保Jenkins默认服务端口(8080)可正常访问
  • 在备份服务器上配置免密SSH登录到生产服务器,消除同步时的密码输入环节:
    # 在Jenkins-Backup生成RSA密钥对(无则生成)
    ssh-keygen -t rsa -b 4096
    # 将公钥复制到Jenkins-Prod的Jenkins用户授权列表
    ssh-copy-id jenkins@<Prod-EC2-IP>
    

二、实时任务同步方案

方案1:SSH脚本+构建触发器(优化你的初步思路)

核心逻辑是在备份服务器创建同步任务,定期/触发式拉取生产服务器的任务配置并同步到本地:

  1. 确认Jenkins-Prod的任务配置存储目录(默认/var/lib/jenkins/jobs/)对Jenkins用户有读写权限
  2. 在Jenkins-Backup创建自由风格项目Sync-Prod-Jobs
  3. 添加"执行shell"构建步骤,写入同步脚本:
    # 清空本地旧任务配置(可选,避免冗余)
    rm -rf /var/lib/jenkins/jobs/*
    # 从生产服务器同步所有任务配置到本地
    scp -r jenkins@<Prod-EC2-IP>:/var/lib/jenkins/jobs/* /var/lib/jenkins/jobs/
    # 重载Jenkins配置(无需重启服务)
    curl -X POST http://localhost:8080/reload --user <Jenkins-Backup-Admin>:<API-Token>
    
  4. 配置构建触发器:
    • 选择"轮询SCM",设置时间表达式(比如* * * * *实现每分钟同步一次,接近实时)
    • 或选择"远程触发",在Jenkins-Prod的所有任务中添加"构建后操作",触发Jenkins-Backup的Sync-Prod-Jobs任务(需配置跨服务器触发令牌)

方案2:Jenkins插件同步(更稳定可靠)

推荐用成熟插件替代脚本,减少维护成本:

Job Import Plugin方案

  1. 在Jenkins-Backup安装Job Import Plugin
  2. 创建"Job Import"类型任务
  3. 配置源服务器:填入Jenkins-Prod的URL,添加认证凭据(用户名+API Token)
  4. 设置同步规则:选择需要同步的任务(或全量),开启自动同步,当生产服务器任务变更时自动同步到备份服务器

Backup Plugin方案

  1. 在Jenkins-Prod安装Backup Plugin,配置定期将任务打包备份到/var/lib/jenkins/backups/目录
  2. 在Jenkins-Backup通过SSH拉取备份文件并恢复:
    scp jenkins@<Prod-EC2-IP>:/var/lib/jenkins/backups/latest-job-backup.zip /tmp/
    unzip /tmp/latest-job-backup.zip -d /var/lib/jenkins/jobs/
    curl -X POST http://localhost:8080/reload --user <Admin-User>:<API-Token>
    

三、灾备恢复步骤

当生产服务器故障时,将备份服务器的任务恢复到新生产实例(或修复后的原生产服务器):

  1. 在新Jenkins-Prod实例上配置免密SSH登录到Jenkins-Backup
  2. 执行恢复脚本:
    scp -r jenkins@<Backup-EC2-IP>:/var/lib/jenkins/jobs/* /var/lib/jenkins/jobs/
    # 重载Jenkins配置
    curl -X POST http://localhost:8080/reload --user <Admin-User>:<API-Token>
    
  3. 验证任务配置、构建历史是否正常;注意:任务配置不包含敏感凭据,需单独同步:可使用Jenkins凭据导出/导入功能,或配合AWS Secrets Manager实现凭据共享
  4. 若使用Backup Plugin,直接在新生产服务器上导入备份文件即可

四、关键注意事项

  • 定期验证同步效果:手动修改生产服务器任务配置,检查备份服务器是否同步成功
  • 记录同步日志:在脚本中添加日志输出,方便排查问题,比如scp ... >> /var/log/jenkins-sync.log 2>&1
  • 定期模拟灾备场景:每季度至少一次模拟生产服务器故障,验证恢复流程的可行性

内容的提问来源于stack exchange,提问作者Aravind S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 08:12:34