Jenkins迁移踩坑与补坑
Posted Pesters
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins迁移踩坑与补坑相关的知识,希望对你有一定的参考价值。
话说我们的Jenkins从第一个Job到现在已经有900多Job,很多同事都在上面工作。但是随着使用的人越来越多,Job越来越多,当初的规划终于跟不上资源使用的脚步。插件越来越多,编译越来越慢,硬盘越来越不够用,很多都只能保存一个历史记录,终于在前一晚刚清出部分空间,第二天早上一来直接硬盘爆了,服务器都登不上去了。受不了了,必须迁移。于是浩浩荡荡的准备迁移,申请大内存,大硬盘服务器,发邮件,顺便把以前low逼的IP访问换个域名访问。
终于到了周末,激动地来到公司,准备迁移。
老Jenkins主机:192.168.x.x
新Jenkins主机:10.3.x.x
迁移步骤:
1. 这次把原来的2.3版本直接升级到更新的2.89,先把tomcat和Jdk安装起来,以前都是tomcat7和jdk7,太low太傻了,全部上8,分别apache-tomcat-8.5.11.tar.gz和jdk-8u91-linux-x64.rpm,防火墙把80端口放出来,把jenkins.war放到tomcat中,至此新机器的环境安装好了。
2. 到老的机器上,把tomcat暂停,把做好的备份压缩成FULL.tar.gz,然后传到新的机器上。
3. 在新的机器/etc/profile里添加exportJENKINS_HOME=/data/.jenkins,之后别忘了source /etc/profile。
4. 新建/data/.jenkins,把FULL.tar.gz移到/data/.jenkins,然后解压。
5. 启动tomcat。
一切都是那么完美,其实too young too simple,当你开心的在浏览器输入fat-jenkins.ppdaicorp.com,我艹,这是什么鬼。界面完全不对,账号也登不上去。好吧,世界虽然美好,但是怎么会一帆风顺,意料之中。因为全部备份一次就100多G,我硬盘总共才200G,所以ThinBackup我选择备份的是如下状态
可能是配置文件不够,去老的机器里/data/.jenkins把除了jobs(这个文件夹是所有构建的东西,最最最大)以外的所有文件都一股脑传到新的机器,然后问题来了,在此告诫所有小伙伴,迁移带有可执行权限的东西,不要用第三方ftp工具,会把权限清零。
所以只能通过scp传。OK,我等了好久……………………………….总算传完了,然后重启tomcat,完美,一切都与我想象的一样完美。除了node没有连上机器而已,小意思,linux的简单,直接重新连接下就好了,哟呵,还不行,好吧,我去配置看下,原来是Credentials都自动选择最靠前的一个了(arch****),明白了,重新都选下我自己的账号重新连,没问题了。Windows的配置里没有配IP的,直接去slave里,重新下载一个最新的slave-agent,然后双击连接,不行了,竟然报我的jdk版本太低,好吧,那就把slave的jdk升级到8,但是还是连不上,好吧,看日志,里面竟然写的还是192.168.x.x,没能识别我的新机器,然后去/data/.jenkins里找配置,果然找到两个配置文件里写死192.168.x.x,hudson.tasks.Mailer.xml和jenkins.model.JenkinsLocationConfiguration.xml,赶紧改过来,再重启tomcat,问题解决。
当第一次编译.Net项目都会报错,报没有权限删除,可能是在以前的salve运行中下载的jenkins插件含有了192.168.x.x信息,因此把slave的workspace及里面的编译结果都删除。
查看测试报告的时候发现所有的样式都没有了,需要在脚本命令行里执行System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
其实最坑的是第二天同事们都上班了,都开始构建了,发现天大的问题,少了些JOB,之后仔细查了备份的jobs里的job还真的跟老机器上的/data/.jenkins里内容少了些。现在就是把谁少了的job直接scp到新的机器的/data/.jenkins/jobs里,然后重启tomcat。
以上是关于Jenkins迁移踩坑与补坑的主要内容,如果未能解决你的问题,请参考以下文章