运维
2022-11-04
2022-11-04
过度的严厉会造成恐惧,过分的温和会有失威严。不要严厉得使人憎恶,也不要温和得使人胆大妄为——萨迪
今天看到ubuntu
上的jenkins
这里有提示
点了一下,提示有新版本更新
又手贱点了一下,然后完蛋,过了一会儿,jenkins
挂掉了
我打开finalShell
(sh
连接客户端)尝试重启
1 | systemctl start jenkins |
提示启动失败,使用
1 | systemctl status jenkins |
查看详情,但是我没看明白报错
又试了试
1 | jenkins start |
这次看懂了,提示java
版本不对,需要java 11 or 17
1 | Jenkins requires Java versions [17, 11] but you are running with Java 1.8 from /jdk路径/java |
原来升级了需要新jdk
,那就去下一个,然后指定一下jenkins
启动使用jdk11
嘛
总不能升级当前所有jdk
环境为java11
吧,迁移成本太大了
于是下载jdk11
1 | wget https://repo.huaweicloud.com/java/jdk/11+28/jdk-11_linux-x64_bin.tar.gz |
然后解压
1 | tar -zxvf jdk-11_linux-x64_bin.tar.gz |
移动目录
1 | mv ./jdk-11 /usr/local/ |
接下来就是指定jenkins
环境了
1 | systemctl status jenkins.service |
里面包含一个路径
1 | jenkins.service - Jenkins Continuous Integration Server |
然后cat
(或者打开)这个路径的文件
1 | cat /lib/systemd/system/jenkins.service |
发现其中配置了一项
进入这个文件
1 | vim /usr/bin/jenkins |
这是一个sh
脚本,其中包含一个main
函数
而且还有很多JAVA_HOME
我们echo
打印一下
再次执行
1 | jenkins start |
可以看到的确输出,那我们就在这里指定jdk
环境
1 | JAVA_HOME=/usr/local/jdk-11 |
然后再次运行,发现提示
我们发现这个提示是在sh
脚本的main
函数里输出的
这里有一个check_java_version
的函数
我们找一下
然后发现到这里原来写的获取java
版本号的逻辑有问题,echo
到java_version
的变量为空的
于是手动在下面加了个java_version="11"
再次重启jenkins
1 | jenkins start |
提示端口占用,重启服务
1 | systemctl restart jenkins |
无报错信息,访问地址,升级成功