轉載互聯網
Jenkins
html
2019年04月24日
前端
相關文章java
持續集成之Jenkins+Gitlab簡介 [一]nginx
環境說明git
服務器IP 服務 備註 10.4.82.119 Jenkins 第一次配置不會的能夠按照個人步驟來 10.4.82.120 gitlab、tomcat 測試環境tomcat端口8083 10.4.82.115 tomcat 測試環境tomcat端口8083 Jenkins發佈回滾流程web
1、Jenkins介紹及安裝
安裝和介紹都是老生常談的內容了,說了N+1+2+3+4+5+…..的話題了,這裏直接跳過了docker
Jenkins yum安裝https://www.abcdocker.com/abcdocker/3174shell
Jenkins War安裝https://www.abcdocker.com/abcdocker/2897apache
2、Jenkins 安裝配置
安裝完成後的界面以下
Jenkins插件安裝
Jenkins主要依賴於插件化,咱們進行插件的安裝
Maven Integration
Maven編譯插件
Role-based Authorization Strategy
權限控制插件 ## 標題 ##
AnsiColor
輸出Log顏色優化插件
安裝插件的步驟不詳細講解了 https://i4t.com/3174.html詳細介紹
Jenkins 全局配置
1.配置jdk環境 下載 wget http://down.i4t.com/jdk1.8.0_66.tar.gz $ tar zxf jdk1.8.0_66.tar.gz -C /usr/local/ $ ln –s /usr/local/jdk1.8.0_66 /usr/local/jdk $ vim /etc/profile export JAVA_HOME=/usr/local/jdk export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$JAVA_HOME/bin:$PATH $ java -version 檢查 $ java -version java version "1.8.0_151" Java(TM) SE Runtime Environment (build 1.8.0_151-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode) 2.配置maven環境 $ wget http://down.i4t.com/apache-maven-3.6.1-bin.tar.gz $ tar xf apache-maven-3.6.0-bin.tar.gz $ mv apache-maven-3.6.0-bin.tar.gz /usr/local/ $ ln -s /usr/local/apache-maven-3.6.0/ /usr/local/maven $ vim /etc/profile export M2_HOME=/usr/local/maven export PATH=${M2_HOME}/bin:$PATH $source /etc/profile 驗證 $ mvn -v Apache Maven 3.6.0 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T03:58:13-04:00) Maven home: /usr/local/maven Java version: 1.8.0_151, vendor: Oracle Corporation Java home: /usr/local/jdk1.8.0_151/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "3.10.0-327.el7.x86_64", arch: "amd64", family: "unix"
咱們須要配置Java環境,以及maven等
配置JDK環境
配置Maven環境
下面進行gitlab安裝,用於上傳測試代碼,Jenkins基本上已經配置完畢!
3、gitlab 安裝及配置
Gitlab安裝目前只須要配置一個yum源,yum install 安裝便可
gitlab安裝文檔https://i4t.com/2041.html
我這裏提供了一份hello 的Java代碼用於測試
一共分爲2步
1.在gitlab web界面建立test項目
2.將Java代碼下載push到gitl
代碼下載 wget http://down.i4t.com/hello-world-war-master.zip [root@abcdocker hello-world-war-master]# yum install -y git && git remote add origin http://10.4.82.120/root/test.git #這裏須要在gitlab上建立項目,而且複製git地址進行push [root@abcdocker hello-world-war-master]# git push -u origin master Username for 'http://10.4.82.120': root Password for 'http://root@10.4.82.120': fatal: Authentication failed for 'http://10.4.82.120/root/test.git/' [root@abcdocker hello-world-war-master]# git push -u origin master Username for 'http://10.4.82.120': root Password for 'http://root@10.4.82.120': Counting objects: 16, done. Delta compression using up to 2 threads. Compressing objects: 100% (11/11), done. Writing objects: 100% (16/16), 4.64 KiB | 0 bytes/s, done. Total 16 (delta 0), reused 0 (delta 0) To http://10.4.82.120/root/test.git * [new branch] master -> master
當咱們將測試代碼上傳完畢後
4、建立項目演示
準備工做
1.tomcat 地址相同 (多套狀況)
2.tomcat 端口相同 (多套狀況)
3.web 服務器添加tomcat重啓腳本
4.Jenkins – web免密 (Jenkins-tomcat服務器免密)
5.修改好項目名
進入Jenkins,進行建立項目
簡單說一下,我這裏環境的配置
tomcat路徑(多套環境只須要改後綴和端口) /usr/local/abcdocker-test tomcat端口 8083 tomcat服務器 10.4.82.115 10.4.82.120 咱們進入82.115和82.120服務器,配置jdk和tomcat,設置端口 配置Tomcat JDK wget http://down.i4t.com/jdk1.8.0_66.tar.gz $ tar zxf jdk1.8.0_66.tar.gz -C /usr/local/ $ ln –s /usr/local/jdk1.8.0_66 /usr/local/jdk $ vim /etc/profile export JAVA_HOME=/usr/local/jdk export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$JAVA_HOME/bin:$PATH $ java -version 下載Tomcat wget wget http://down.i4t.com/apache-tomcat-8.5.39.tar.gz tar xf apache-tomcat-8.5.39.tar.gz mv apache-tomcat-8.5.39 abcdocker1-test #修改端口 sed -i s#8080#8083#g abcdocker1-test/conf/server.xml ## 將默認端口修改成8083
咱們先訪問默認tomcat,檢查是否會由於JDK環境問題致使默認tomcat就沒法啓動
訪問地址ip:8083 tomcat安裝配置參考
如今咱們的tomcat測試基本上沒有問題
配置Jenkins
1.配置Jenkins 參數化構建
[ 1 ] 建立選項參數
[ 2 ] 建立Git commit版本參數
2.Git地址配置
咱們經過https://i4t.com/2041.html安裝完gitlab以後,將代碼上傳完畢。這裏須要輸入項目的git地址
舒適提示:我這裏已經將測試代碼上傳到gitlab上,怎麼上傳代碼看上面的步驟吧。
複製git地址以後須要配置一點,那就是gitlab的地址。有2種認證方式,一種是經過帳號密碼,在Jenkins上建立帳號密碼,另外就是經過key來認證。key認證明際上就是複製Jenkins服務器的ssh公鑰到gitlab上的SSH key選項。 我這裏以帳號密碼爲主
配置完成後
只要沒有紅色報錯便可
3.日誌代碼高亮配置
其餘選項咱們不配置,這裏只配置一個日誌輸出高亮的參數。 沒有的安裝上面的插件
4.maven編譯參數配置
我這裏的編譯參數就是maven默認的編譯參數,具體不講解了。每一個公司的環境不同
clean package -Dmaven.test.skip=true 測試Jenkins就用我這個配置就OK
5.構建完執行腳本
咱們須要將構建完執行腳本點開,默認Jenkins不配置shell腳本,Jenkins只是將程序設置成war包,存儲下來。這樣並無發佈到web服務器上
6.發佈及滾回腳本
腳本內容比較多,請直接下載查看
wget http://down.i4t.com/abcdocker-jenkins.txt
腳本解釋
除了這幾個要修改,咱們還須要修改tomcat啓動和重啓腳本
內容以下
下載地址wget http://down.i4t.com/abcdocker-test
還須要添加權限+x
#須要修改一下tomcat啓動目錄 #!/bin/bash # description: Tomcat is a Java Servlet Container . /etc/profile TOMCAT_HOME=/usr/local/abcdocker1-test start () { TOMCAT_PID=`ps -ef |grep "$TOMCAT_HOME" |grep -v "grep" |awk '{print $2}'` if [ -z $TOMCAT_PID ];then /bin/bash $TOMCAT_HOME/bin/startup.sh else echo "$0 is running" fi } stop () { TOMCAT_PID=`ps -ef |grep "$TOMCAT_HOME" |grep -v "grep" |awk '{print $2}'` if [ -z $TOMCAT_PID ];then echo "$0 is not running" else echo "shutting down $0" kill -9 "$TOMCAT_PID" && echo "PID $TOMCAT_PID killed." fi } status () { TOMCAT_PID=`ps -ef |grep "$TOMCAT_HOME" |grep -v "grep" |awk '{print $2}'` if [ -z $TOMCAT_PID ];then echo "$0 is not running" else echo "$0 is running PID is $TOMCAT_PID" fi } case $1 in start) start #tail -f $TOMCAT_HOME/logs/catalina.out ;; stop) stop ;; status) status ;; restart) stop start #tail -f $TOMCAT_HOME/logs/catalina.out ;; *) echo "Usage:$0 {start|stop|status|restart}." ;; esac
咱們Jenkins點擊保存save
,如今Jenkins就配置完畢,咱們進行測試
tomcat須要啓動正常
啓動目錄和啓動腳本都要寫好
訪問驗證結果
如今咱們開始使用Jenkins發佈
1.發佈前確認Jenkins和web作免密(我這裏已經作了,不介紹) https://i4t.com/1353.html
2.確保tomcat啓動正常
3.獲取gitlab的git commit地址
咱們如今獲取git commit地址
git commit版本不區分分支,不必定必須在master分支上,其餘分支也會有
我這裏只配置了test環境,咱們就只演示test環境,其餘環境腳本配置都差很少
點擊項目---->點擊構建
點擊小圓圈
結果說明
git拉代碼
Maven編譯步驟
執行shell命令
啓動服務判斷,若是有一臺服務啓動異常,將會暫停發佈。經過nginx upstream_check_module會自動中止異常tomcat請求
同時web服務器會自動在data
目錄建立備份
發版完畢,在shell腳本部分咱們後期能夠修改爲salt
,不推薦使用Publish over SSH
主要是因爲配置麻煩,環境很差區分。要建立多個Jenkins,使用shell或者引用批量分發腳本最爲簡單
發佈回滾腳本流程