CI&CD落地實(shí)踐3-Jenkins版本升級(jí)與踩坑實(shí)踐
背景
當(dāng)前環(huán)境:
- 操作系統(tǒng):Linux(CentOS-7.9);
- Java版本:Java8;
- Jenkins版本:2.328;
升級(jí)原因:很多插件都不兼容,無(wú)法使用,提示要升級(jí)版本。
一、升級(jí)Jenkins過(guò)程
1.遇到的坑1-Java版本過(guò)低
確切地說(shuō),之前是有過(guò)升級(jí)成功的經(jīng)驗(yàn)的,步驟如下:
① 下載最新的jenkins.war包并放到
/home/apache-tomcat-9.0.43/webapps目錄下;
② 重啟apache-tomcat;
③ 訪問(wèn)Jenkins;
但是我在重啟后,再次訪問(wèn)Jenkins遇到了如下報(bào)錯(cuò):
在網(wǎng)上查閱后得知,Jenkins從 6 月 28 日發(fā)布的 Jenkins 2.357 和9 月 LTS 版本開(kāi)始,Jenkins 最低需要 Java 11,所以jdk最低要安裝到11。
2.安裝JDK11
① 在liunx上可以通過(guò)如下命令安裝:
yum -y install java-11-openjdk*
以上會(huì)直接自動(dòng)安裝jdk并配置好環(huán)境變量:
② 測(cè)試java版本,已經(jīng)升級(jí)到j(luò)ava11:
已安裝的java11在/usr/lib/jvm目錄下:
3.遇到的坑2-未切換到新安裝的Java
重啟apache-tomcat,再次刷新Jenkins頁(yè)面,還是出現(xiàn)前面的404報(bào)錯(cuò):
通過(guò)查看Tomcat啟動(dòng)日志發(fā)現(xiàn),Tomcat使用的java版本仍然是java8,說(shuō)明新安裝的java11并沒(méi)有對(duì)apache-tomcat生效,因此還需要特地為apache-tomcat指定java版本。
4.指定apache-tomcat的Java版本
具體修改哪個(gè)文件,起初我也不確定,后來(lái)在這篇帖子中找到了答案:《啟動(dòng) Tomcat 遇到 Neither the JAVA_HOME nor the JRE_HOME environment variable is defined 問(wèn)題,已解決》
整個(gè)調(diào)用鏈路如下:
- Windows:?jiǎn)?dòng)文件startup.sh → catalina.sh → setclasspath.sh,setclasspath.sh 里讀取系統(tǒng)的環(huán)境變量。
- Linux:?jiǎn)?dòng)文件startup.sh → catalina.sh → setclasspath.sh,setclasspath.sh 里讀取系統(tǒng)的環(huán)境變量。
① 修改Tomcat的bin目錄下的setclasspath文件
我的是Linux系統(tǒng),所以只需要在Tomcat的bin目錄下的setclasspath.sh文件中將java版本指定為新安裝的java11就可以了
在setclasspath.sh文件最開(kāi)始位置設(shè)置java相關(guān)的環(huán)境變量:
② 再次重啟apache-tomcat,使用的是最新的java11
③ 重新訪問(wèn)Jenkins
此時(shí)再次訪問(wèn)Jenkins,就不會(huì)出現(xiàn)開(kāi)頭的404報(bào)錯(cuò)了,訪問(wèn)正常:
更新成功,Jenkins訪問(wèn)正常,界面煥然一新,版本為升級(jí)后的2.387.1版本:
后續(xù)如有新版本更新,只需替換jenkins.war包即可,除非有明確的java版本要求。