jenkins 迁移

老机器

  1. 备份数据
1
tar -czvf jenkins.tar.gz /var/lib/jenkins
  1. 迁移数据
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. 解压
1
tar -zxvf jenkins_backup.tar.gz -C /var/lib
  1. 开机自启
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

插件与配置兼容性

  1. 读取配置: 迁移数据后,务必在 系统管理 页面点击 从磁盘读取配置 (Reload Configuration from Disk),确保所有插件和 Job 状态已同步。
  2. CSRF 防护: 如果页面操作时弹出 403 错误,尝试在 全局安全配置 中勾选 启用代理兼容性 (Enable proxy compatibility)。

修改更新源地址(最有效)

Jenkins 默认会访问海外服务器验证状态,迁移后的网络环境可能无法流畅访问。

  1. 操作: 进入 Jenkins 工作目录(通常为 /var/lib/jenkins 或自定义的 JENKINS_HOME)。
  2. 编辑文件: 打开 hudson.model.UpdateCenter.xml。
  3. 替换 URL: 将原本的 updates.jenkins.io 替换为国内镜像源。
  4. 推荐源: mirrors.tuna.tsinghua.edu.cn
  5. 重启 Jenkins: 保存后重启服务(systemctl restart jenkins)。