jenkins 迁移
老机器
- 备份数据
1
| tar -czvf jenkins.tar.gz /var/lib/jenkins
|
- 迁移数据
1 2 3 4 5 6 7 8 9 10 11 12
| cd /var/lib scp -P 32768 -r jenkins_backup.tar.gz root@10.0.1.11:$PWD
cd /usr/lib scp -P 32768 -r jenkins root@10.0.1.11:$PWD
cd /var/log scp -P 32768 -r jenkins root@10.0.1.11:$PWD
cd /var/cache scp -P 32768 -r jenkins root@10.0.1.11:$PWD
|
新机器
- 解压
1
| tar -zxvf jenkins_backup.tar.gz -C /var/lib
|
- 开机自启
1
| vim /etc/systemd/system/jenkins.service
|
1 2 3 4 5 6 7 8 9
| [Unit] Description=Jenkins Server [Service] Type=forking ExecStart=/etc/alternatives/java -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8008 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20 ExecStop=/usr/bin/killall jenkins Restart=always [Install] WantedBy=default.target
|
1 2 3 4 5
| chmod 664 /etc/systemd/system/jenkins.service systemctl daemon-reload systemctl start jenkins.service systemctl stop jenkins.service systemctl enable jenkins.service
|
迁移后卡顿,需要替换老的 ip
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| #停止jenkins systemctl stop jenkins.service
cd /var/lib/jenkins #原本的内网ip,在现在的机器中有很多 grep -r "" |grep 10.25.77.192
#替换内网ip, find . -type f -exec sed -i 's/10.25.77.192/10.0.1.xx/g' {} + #替换外网ip find . -type f -exec sed -i 's/47.105.xx.xx/47.104.xx.xx/g' {} +
#启动jenkins systemctl start jenkins.service
|
插件与配置兼容性
- 读取配置: 迁移数据后,务必在 系统管理 页面点击 从磁盘读取配置 (Reload Configuration from Disk),确保所有插件和 Job 状态已同步。
- CSRF 防护: 如果页面操作时弹出 403 错误,尝试在 全局安全配置 中勾选 启用代理兼容性 (Enable proxy compatibility)。
修改更新源地址(最有效)
Jenkins 默认会访问海外服务器验证状态,迁移后的网络环境可能无法流畅访问。
- 操作: 进入 Jenkins 工作目录(通常为 /var/lib/jenkins 或自定义的 JENKINS_HOME)。
- 编辑文件: 打开 hudson.model.UpdateCenter.xml。
- 替换 URL: 将原本的 updates.jenkins.io 替换为国内镜像源。
- 推荐源: mirrors.tuna.tsinghua.edu.cn
- 重启 Jenkins: 保存后重启服务(systemctl restart jenkins)。