背景

公司的Jenkins已经部署了很久了,期间涉及到几次晋级,每次都是经过在Jenkins的控制台进行主动晋级,也都非常顺畅的晋级成功。 本次提示晋级到2.387.1版别,在Jenkins的页面进行主动下载,可是在装置中这一步却卡住了。

然后出现:

在服务器 ps aux | grep jenkins 查看进程,没有Jenkins的进程;
指令行执行 systemctl start jenkins 发动Jenkins,指令不会报错,可是Jenkins依然起不来;

下面说解决办法:

服务起不来

流水线可能里面有很多咱们写的脚本和代码以及各项装备,如果重装Jenkins这些数据丢失不能接受。

  • 查看java版别,例如本次Jenkins高版别是需要java11以上的,咱们用的8,而且修正装备文件里的java版别以及路径信息;
  • java如果更新了没用,而且排错也无果,就要考虑做好重装的计划:

重装Jenkins

  • 先将/var/lib/jenkins主程序目录备份,用mv改个姓名就可以;
  • yum remove jenkins 卸载当时版别打不开的Jenkins;
  • 找一个低版别的Jenkins装置包,将其装置;
  • 原来备份的/var/lib/jenkins 放回来;
  • 修正/etc/sysconfig/jenkins ,Jenkins的用户为root;
  • 发动Jenkins,输入账号密码,然后将流水线里要备份的内容记录下来;
  • yum remove jenkins卸载该低版别Jenkins,原有的旧版别java删除,去官网装置最新版别Jenkins;
  • 根据记录的流水线等内容进行新建;

无法拉取代码

Jenkins升级注意事项
首要清晰服务器能不能拉取代码,如果服务器git clone都不能拉取,说明密钥之类的有问题:

  • 从新创立公私钥,公钥放代码库,进行拉代码;

我这次的问题是指令行可以拉,Jenkins却不可以:

  • git问题:从新下载新版git,Jenkins环境变量设置git path,可是我本次尝试了没用;
  • 晋级git插件:Jenkins的git相关插件下载最新,可是我本次尝试了没用;
  • 从新创立流水线、重启之类:我本次尝试了没用;
  • jdk版别不对:这个很关键,可是我从新装置过了;
  • 指令行拉一下代码:有时候会第一次需要指令行拉一下,Jenkins才干成功拉取,可是每次没用;
  • 修正service文件:/usr/lib/systemd/system/jenkins.service,如下,34 35行改为root;
vim /usr/lib/systemd/system/jenkins.service
 30 # Unix account that runs the Jenkins daemon
 31 # Be careful when you change this, as you need to update the permissions of
 32 # $JENKINS_HOME, $JENKINS_LOG, and (if you have already run Jenkins)
 33 # $JENKINS_WEBROOT.
 34 User=root
 35 Group=root
 36 
 37 # Directory where Jenkins stores its configuration and workspaces
systemctl deamon-reload    # 重新加载service文件
systemctl restart jenkins     # 重新发动Jenkins

本次到这里解决了,可是印象中之前service文件是没有修正过的,不太清楚为什么。总之大致便是这么几个解决思路。