最近在Linux服務器搭建了Jenkins,遇到了特別多的問題,趕緊記下來;
1、安裝jdk環境
因為Jenkins運行需要jdk的環境,所以首先得安裝Java,這里介紹兩種jdk的方法
命令安裝
1、使用命令安裝jdk環境,這種的是openjdk
sudo apt-get install openjdk-8-jre sudo apt-get install openjdk-8-jdk
使用whereis java 查看Java的路徑,好配置環境變量
whereis java
2、配置環境變量,使配置生效
sudo vim /etc/profile
export JAVA_HOME=/usr/bin/java export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
source /etc/profile
3、如果這樣配置的環境變量,其他程序需要依賴Java環境的話,比如Jenkins,maven,allure等。在配置完其他環境檢查配置正確與否,遇到報錯情況如下:
測試Java環境變量沒有問題,但是在配置其他環境,我這里配置的是allure環境,驗證時報錯了,說Java環境沒有問題,給我郁悶了一個下午。
ERROR: JAVA_HOME is set to an invalid directory: /usr/bin/java
Please set the JAVA_HOME variable in your environment to match the location of your Java installation.
錯誤:JAVA_HOME被設置為無效目錄:/usr/bin/java
請在環境中設置JAVA_HOME變量以匹配Java安裝的位置。
最后終於找到原因了,還真的就是Java環境有問題。
因為我安裝的是openjdk,查看Java路徑時用的whereis java這個命令,得到的路徑是/usr/bin/java。可是這個路徑不行,我又找其他的Java路徑,最終找到一個叫java-8-openjdk-amd64這種字眼的路徑,然后將這個路徑配置到JAVA_HOME中,就可以了,希望給遇到同樣問題的人避免踩坑。
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/ # JAVA_HOME路徑是這個。其他的不變。
壓縮包安裝
1、下載jdk,這種是Oracle的jdk
去官網下載jdk安裝包,我的是Ubuntu18.04 64位的系統,或者去其它網站下載,或者你找其他人要也可以。(官網下載需要注冊賬號)
注意:不要用wget命令去下載,因為這樣需要同意Oracle的安裝協議,不然不能下載,但是wget命令默認是不同意,雖然能下載下來,但是會有問題
官網地址:https://www.oracle.com/java/technologies/javase-jdk8-downloads.html
2、將jdk的安裝包上傳到Linux服務器
將下載下來的安裝包上傳到Linux服務器, 這里我用的是rz命令,如果沒有,那就安裝一下
sudo apt-get install lrzsz
直接在命令輸入 sudo rz,就會彈出上傳文件的文本框;如果傳輸失敗,如下圖所示,那就是權限問題,必須加上sudo;如果傳輸一半失敗,那就用sudo rz -be這個命令傳輸文件,具體原因自己百度吧,不過多贅述了
3、解壓壓縮包,並配置環境變量
cd 到usr/local目錄下,使用mkdir java命令創建java文件夾。然后用mv命令將壓縮包移動到java這個文件夾下
sudo mkdir java
也可以是先到/usr/local目錄下,讓后創建一個java目錄,直接在這個目錄下上傳java的壓縮包。
修改環境變量:使用 vim /etc/profile 打開文件profile,在文件最后面添加java環境變量。
export JAVA_HOME=/usr/local/java/jdk1.8.0_161 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin export PATH=$PATH:${JAVA_PATH}
使配置生效
source /etc/profile
測試jdk環境生效
java -version
這樣就是Java環境配置成功了。
2、安裝Jenkins
安裝Jenkins有多種方法:
1、官網命令安裝方法:https://www.jenkins.io/zh/doc/book/installing/#linux
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add - sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list' sudo apt-get update sudo apt-get install jenkins
2、下載Jenkins安裝包(前提是得安裝jdk環境)
https://www.jenkins.io/zh/download/
2、將Jenkins的war包上傳到Linux服務器,操作方法同上邊的上傳jdk的包;
3、在你Jenkins的目錄運行命令
java -jar jenkins.war
4、啟動Jenkins
sudo service jenkins start
我就是在這里報錯的,報錯信息為:
Starting jenkins (via systemctl): Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.
這個是因為Java路徑不對導致的報錯,修改/etc/init.d/jenkins文件中的java路徑,使用 vim /etc/init.d/jenkins命令打開jenkins配置文件,操作和上面配置java環境變量一樣
網上一頓瞎折騰,也沒搞定,最后查看錯誤信息,還是跟java路徑有關,里面提到 type - p java,說這個會返回實際的java路徑,我的Java實際路徑為:/usr/local/java/jdk1.8.0_161/bin/java;
修改sudo vim /etc/init.d/jenkins,找到一行JAVA=`type -p java`,我把這行直接注釋了,然后添加一行JAVA= /usr/local/java/jdk1.8.0_161/bin/java,保存退出
執行命令:systemctl daemon-reload重新加載
systemctl daemon-reload
重啟 systemctl restart jenkins.service
查看狀態 systemctl status jenkins.service
這樣就是成功了。
如果想修改Jenkins的端口,需要修改 vim /etc/default/jenkins文件的HTTP_POrt=8080
修改完重啟一下Jenkins服務,還需要看一下是不是和vim /etc/init.d/jenkins這個文件的端口號一致
3、打開ui界面
瀏覽器輸入地址:8080端口,就可以看到熟悉的老人頭了,哈哈