记一次因jenkins重启导致的项目全部丢失的问题

记一次因jenkins重启导致的项目全部丢失的问题

背景

  • 今天下午部门反馈jenkins构建项目一直转圈,点stop也不能停止。这个一直转圈卡住是由于svn代码从svn协议改变为https协议,路径变了导致jenkins不能拉取代码而一直阻塞在哪里。但我要重新构建啊,怎么办?

    于是我重启了jenkins,但是重启后,登陆发现之前部署的项目全没了,此时此刻,我心里一万只马奔腾而过,一脸懵逼。由于没找到问题,就让项目组手动打包上传服务器

解决办法

  1. 找到自己的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

  2. 编辑/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
    
  3. 重启jenkins

    nohup java -jar jenkins.war --httpPort=10010 &
    

当执行完以上步骤后,即可看到我们之前部署的job都重新展示出来了。holy shit!


其他

如果还不行的话,大家可以再试下如下方式,我是成功的。

  1. 进入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>

保存退出!

以上!

原文地址:https://www.cnblogs.com/tanglc/p/13709129.html