(此文章為Jenkins學習總結,如有錯誤敬請指出,感激不盡)
一.操作環境準備
注意:Jenkins要選2.3以上版本,因Jenkins内部很多插件不再支援低版本,相應的,2.3以後不再支援jdk1.8,在操作環境的選取上要注意。
0.實作思路:
代碼推送到gitee倉庫,觸發Jenkins自動建構項目,Jenkins從代碼倉庫拉取最新代碼進行打包部署
1.CentOS
虛拟機環境準備,這裡本人用的centos7
2.jdk
由于各種原因,使用jdk11
1).在虛拟機中建立檔案夾/home/jdk,并上傳jdk包,使用 tar -zxvf 指令解壓
tar -zxvf jdk-11.0.17_linux-x64_bin.tar.gz
得到 jdk-11.0.17 檔案夾
2).修改 /etc/profile 檔案;使用指令 vi /etc/profile,進入檔案,修改環境變量
# java配置
export JAVA_HOME=/home/jdk/jdk-11.0.17
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/bin
esc + : + wq +enter 儲存編輯之後的檔案
3).重新整理檔案使之生效
source /etc/profile
4).檢視目前jdk環境 java -version
看到java版本即可
2.git
由于項目是gitee項目,在系統上不做配置,稍後在Jenkins上配置
3.maven
1).在虛拟機中建立檔案夾/home/maven及maven倉庫/home/maven/repo,下載下傳解壓
tar -zxvf apache-maven-3.8.7-bin.tar.gz
得到apache-maven-3.8.7 檔案夾
2).修改 /etc/profile 檔案,添加環境變量
#maven 配置
export MAVEN_HOME=/home/maven/apache-maven-3.8.7
export PATH=$MAVEN_HOME/bin:$PATH
3).重新整理配置檔案
4).檢視目前maven環境 mvn -version
看到maven 版本
二.Jenkins的安裝與配置
1.jenkins下載下傳安裝
1.下載下傳
wget https://repo.huaweicloud.com/jenkins/redhat-stable/jenkins-2.375.2-1.1.noarch.rpm
2.安裝
yum install jenkins
3.修改配置檔案: vi /etc/init.d/jenkins ,将jdk換成剛才下載下傳的
4.修改jenkins的鏡像位址,和插件下載下傳位址,否則在頁面通路将會很慢,插件下載下傳也可能失敗
1).修改/var/lib/jenkins/hudson.model.UpdateCenter.xml
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
2).修改插件下載下傳位址:
sed -i 's/http:\/\/updates.jenkinsci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
2.啟動
1.開啟/關閉服務
systemctl start jenkins
systemctl stop jenkins
開啟後可以檢視jenkins的目前狀态
systemctl status jenkins
當看到如圖狀态,表示服務已開啟
2.關閉防火牆,使浏覽器可以通路jenkins首頁
systemctl stop firewalld
3.分布式項目需要配置hosts檔案各服務位址,linux系統下hosts檔案配置:
vi /etc/hosts
如:
4.有些jar包可能線上上倉庫沒有,需要手動打進本地maven倉庫
其中: -Dfile: 對于你的jar包的位置 -DgroupId -DartifactId -Dversion三個參數分别對于pom.xml檔案中的配置參數選項:如下所示:
<dependency> <groupId>com.test.gmssl</groupId> <artifactId>gmssl-demo</artifactId> <version>1.0</version> </dependency>
jar包打入成功:
3.通路
浏覽器通路:ip+端口号(linux檢視ip位址: ip addr ,端口預設8080)
第一次通路的時候需要解鎖,在虛拟機内輸入該位址以擷取管理者密碼
在選擇插件安裝直接選擇推薦,快速進入
注:初次啟動在沒有修改jenkins鏡像位址的情況下會安裝失敗,如圖
else 正常下載下傳:
進入首頁之後提示建立第一個使用者:
完成之後進入首頁,配置全局jdk和maven環境
maven:
jdk:
在插件裡面去安裝gitee plugin:為代碼倉庫拉取最新代碼做準備
在插件倉庫去安裝publish over ssh:在jenkins項目編譯後将使用其部署到伺服器
三.項目實戰
1.建立一個項目,開始配置,因為我們的項目是一個maven項目,是以直接選maven,在運用熟悉後可以選第一個高自由度的自由風格
源碼管理:選擇代碼來源,代碼所在倉庫位址,配置git賬号密碼
建構觸發器:這裡是配置觸發代碼建構的條件,我們可以手動建構,也可以當代碼倉庫發生改變時自動建構
注意紅框中的伺服器位址,要修改成外網可以通路的url,否則gitee連接配接不上jenkins
webhook密碼是選填項,如果填寫,對應的git倉庫也要填寫
post step:項目部署設定子產品
添加項目啟動腳本
點選應用,儲存,設定完成,嘗試建構
檢視控制台,建構情況
此時項目已經部署到伺服器,根據所編寫的腳本伺服器将完成後續操作。
參考腳本:
#!/bin/sh
echo =================================
echo 自動化部署腳本啟動
echo =================================
echo 停止原來運作中的工程
APP_NAME1=XXX1#克隆遠端倉庫項目名字
APP_NAME2=XXX2
...
#根據APP_NAME1變量殺程序
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo 'Stop Success!'
fi
#根據APP_NAME2變量殺程序
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo 'Stop Success!'
fi
...
//進入1項目目錄
cd target1/
echo 啟動1項目
nohup java -jar xxx1.jar &> XXX1.log &#注意,改為自己的.jar包名//進入1項目目錄
cd target2/
echo 啟動2項目
nohup java -jar xxx2.jar &> XXX2.log &
...
echo 項目啟動完成
嘗試接口通路: