无缝迁移 Jenkins 到新 Ubuntu 16.04 系统


第一阶段:旧系统备份准备(源服务器)
# 1. 停止 Jenkins 服务
sudo systemctl stop jenkins

# 2. 备份关键目录(完整路径)
JENKINS_HOME=$(sudo grep -m1 'JENKINS_HOME' /etc/default/jenkins | cut -d= -f2)
sudo tar -czvf jenkins_full_backup.tar.gz \
    $JENKINS_HOME \
    /etc/default/jenkins \
    /var/log/jenkins \
    /usr/share/jenkins \
    /etc/init.d/jenkins

# 3. 生成插件列表(迁移后验证用)
ls $JENKINS_HOME/plugins/ | awk -F '.' '{print $1}' > plugins.list

第二阶段:新系统基础配置(目标服务器)
# 1. 安装相同版本的 Java
sudo apt update
sudo apt install openjdk-8-jdk -y

# 2. 安装相同版本的 Jenkins(从备份获取版本号)
OLD_VERSION=$(grep JENKINS_VERSION jenkins_full_backup.tar.gz | head -1 | awk -F'-' '{print $2}')
wget https://pkg.jenkins.io/debian-stable/binary/jenkins_${OLD_VERSION}_all.deb
sudo dpkg -i jenkins_${OLD_VERSION}_all.deb

第三阶段:数据恢复与配置迁移
# 1. 停止新 Jenkins 服务
sudo systemctl stop jenkins

# 2. 恢复备份(保持原有路径)
sudo tar -xzvf jenkins_full_backup.tar.gz -C /

# 3. 修复关键权限
sudo chown -R jenkins:jenkins $JENKINS_HOME
sudo chmod 775 /var/log/jenkins
sudo chmod 755 /etc/init.d/jenkins

# 4. 恢复环境配置(可选)
sudo cp /etc/default/jenkins /etc/default/jenkins.bak
sudo mv /etc/default/jenkins.old /etc/default/jenkins

第四阶段:网络配置与安全加固
# 1. 修改系统配置(如变更IP)
sudo nano $JENKINS_HOME/config.xml
# 查找并更新旧服务器IP地址:
#   <jenkinsUrl>http://新服务器IP:8080</jenkinsUrl>

# 2. 更新 SSH 密钥(如果使用 Git 凭证)
sudo cp $JENKINS_HOME/.ssh/id_rsa* /var/lib/jenkins/.ssh/
sudo chown jenkins:jenkins /var/lib/jenkins/.ssh/*

# 3. 修复插件兼容性
sudo java -jar /usr/share/jenkins/jenkins.war --enable-future-plugins

第五阶段:验证与服务启动
# 1. 启动服务
sudo systemctl daemon-reload
sudo systemctl start jenkins

# 2. 检查日志
sudo tail -f /var/log/jenkins/jenkins.log

# 3. 验证插件恢复
curl -s http://localhost:8080/pluginManager/installed | jq '.plugins[] | .shortName' > new_plugins.list
diff -y plugins.list new_plugins.list

第六阶段:安全优化与监控
# 1. 重置 admin 密码(可选)
echo '替换为旧服务器 $JENKINS_HOME/users/admin_*/config.xml 中的密码哈希' | \
sudo tee $JENKINS_HOME/users/admin_*/config.xml

# 2. 防火墙配置
sudo ufw allow 8080/tcp
sudo ufw allow 50000/tcp  # Jenkins 代理端口

# 3. 设置监控
sudo apt install nmon -y
nmon  # 实时资源监控

迁移后验证清单:
  1. 访问 http://新服务器IP:8080
  2. 验证所有作业配置完整性
  3. 测试触发构建操作
  4. 检查凭证库是否完整
  5. 确认插件全部加载(无兼容性错误)

⚠️ 证书迁移提示:如果使用 HTTPS:

sudo cp /旧/路径/jenkins_keystore.jks $JENKINS_HOME/
sudo nano /etc/default/jenkins
# 添加:
JAVA_ARGS="-Djavax.net.ssl.trustStore=$JENKINS_HOME/jenkins_keystore.jks"

通过此流程可实现零数据损失的无缝迁移,90%以上的迁移问题源自文件权限错误,务必执行 chown -R jenkins:jenkins $JENKINS_HOME

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值