将老服务器jenkins主目录下的config.xml文件以及jobs、users、workspace、plugins四个目录拷贝到新机器的jenkins主目录下。如果没有plugins这个插件,就会导致有些job查找不到了。

拷贝4个目录
在jenkins的数据卷目录下面,需要拷贝jobs、users、workspace、plugins四个目录,才可以完成升级任务

常见问题
1、You have data stored in an older format and/or unreadable data.
出现这个问题,就是由于没有导入以前plugins目录,导致没有找到类,所以才报错了,解决方案,就是查看报啥错,然后安装对应的插件。

2、There appears to be a large number of jobs. Did you know that you can organize your jobs to different views? You can click ‘+’ in the top page to create a new view any time.
这个意思是说,你要自己建立一个视图,这个不是报错,所以无所谓了。

sudo: cd: command not found
那就是sudo su 或者sudo -sH 默认缺省为获取root 用户

迁移步骤为:
1)先关闭新老服务器的tomcat程序,确保迁移时新老机器的jenkins都处于关闭状态。jenkins程序关闭最好是直接kill掉jenkins的tomcat程序pid。
2)将老服务器jenkins主目录下的config.xml文件以及jobs、users、workspace、plugins四个目录拷贝到新机器的jenkins主目录下。
3)重启新服务器jenkins的tomcat程序。
 
迁移的时候可以直接将jenkins主目录数据整个拷贝过去,也可以单独拷贝jenkins主目录下的config.xml文件以及jobs、users、workspace、plugins四个目录(这是主要的迁移数据)。一般来说,手动设置好jenkins主目录路径,启动jenkins后就会自动生成(但要确保jenkins用户有权限创建这个主目录,最好是提前手动创建并赋予jenkins启动用户的权限)
 
关闭老机器的jenkins程序
[root@code-server ~]# lsof -i:8080
COMMAND    PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
bundle   13481  git   15u  IPv4 2839661      0t0  TCP localhost:webcache (LISTEN)
[root@code-server ~]# kill -9 13481
 
新机器的jenkins程序也要同样关闭
 
拷贝老服务器的jenkins主目录或者上面说的那几个重要数据到新机器的jenkins主目录下
[root@code-server ~]# rsync -e "ssh -p22" -avpgolr --delete /data/jenkins/ root@10.0.8.60:/data/jenkins/
 
或者
[root@code-server ~]# rsync -e "ssh -p22" -avpgolr /data/jenkins/config.xml root@10.0.8.60:/data/jenkins/
[root@code-server ~]# rsync -e "ssh -p22" -avpgolr --delete /data/jenkins/users/ root@10.0.8.60:/data/jenkins/users/
[root@code-server ~]# rsync -e "ssh -p22" -avpgolr --delete /data/jenkins/plugins/ root@10.0.8.60:/data/jenkins/plugins/
[root@code-server ~]# rsync -e "ssh -p22" -avpgolr --delete /data/jenkins/jobs/ root@10.0.8.60:/data/jenkins/jobs/
[root@code-server ~]# rsync -e "ssh -p22" -avpgolr --delete /data/jenkins/workspace/ root@10.0.8.60:/data/jenkins/workspace/
 
尤其是plugins目录,最好保证新机器下的这个目录和老机器下的这个目录数据保持一致。否则容易造成新机器的jenkins访问报错
 
最后启动新机器的jenkins服务
[root@jenkins01 ~]$ /data/tomcat8.5/bin/startup.sh
[app@jenkins01 ~]$ lsof -i:8080
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    101037  app   46u  IPv6 498942      0t0  TCP *:webcache (LISTEN)

参考文章
Jenkins迁移job - ajupiter - 博客园
Jenkins 日常运维笔记 - 主目录/主备模式/迁移/job覆盖/maven构建/日志处理 - 散尽浮华 - 博客园
Jenkins 日常运维笔记 - 主目录/主备模式/迁移/job覆盖/maven构建/日志处理 - 散尽浮华 - 博客园



作者:锐心凌志
链接:https://www.jianshu.com/p/35f3f86253a1
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐