记一次因jenkins重启导致的项目全部丢失的问题
背景
-
今天下午部门反馈jenkins构建项目一直转圈,点stop也不能停止。这个一直转圈卡住是由于svn代码从svn协议改变为https协议,路径变了导致jenkins不能拉取代码而一直阻塞在哪里。但我要重新构建啊,怎么办?
于是我重启了jenkins,但是重启后,登陆发现之前部署的项目全没了,此时此刻,我心里一万只马奔腾而过,一脸懵逼。由于没找到问题,就让项目组手动打包上传服务器
解决办法
-
找到自己的jenkins的home目录
[root@VM_0_17_centos jenkins]# ps -ef|grep jenkins root 7637 1 0 2019 ? 05:12:12 /opt/jdk1.8.0_121/bin/java -Dcom.sun.akuma.Daemon=daemonized -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=10010 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20
可以看出我的jenkins的home目录是/var/lib/jenkins
-
编辑/etc/profile文件,增添jenkins的环境变量,让jenkins启动能从这个环境变量指向的home路径去加载我们之前配置的项目构建job信息
[root@VM-0-9-centos jenkins]# vim /etc/profile 在文件最后添加: export JENKINS_HOME=/var/lib/jenkins 保存退出 别忘了使刚才编辑的环境变量文件生效,source一下 root@VM-0-9-centos jenkins]# source /etc/profile
-
重启jenkins
nohup java -jar jenkins.war --httpPort=10010 &
当执行完以上步骤后,即可看到我们之前部署的job都重新展示出来了。holy shit!
其他
如果还不行的话,大家可以再试下如下方式,我是成功的。
- 进入jenkins.war解压的目录
[root@VM-0-9-centos WEB-INF]# cd /var/cache/jenkins/war/WEB-INF
[root@VM-0-9-centos WEB-INF]# vim web.xml
<env-entry>
<env-entry-name>HUDSON_HOME</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>/var/lib/jenkins</env-entry-value> //找到这里,并把home路径放在这里
</env-entry>
保存退出!
以上!