Jenkins自動化部署入門詳細教程

大綱

  

1.背景

  在實際開發中,咱們常常要一邊開發一邊測試,固然這裏說的測試並非程序員對本身代碼的單元測試,而是同組程序員將代碼提交後,由測試人員測試;java

  或者先後端分離後,常常會修改接口,而後從新部署;linux

  這些狀況都會涉及到頻繁的打包部署;git

  手動打包常規步驟:程序員

  1.提交代碼github

  2.問一下同組小夥伴有沒有要提交的代碼spring

  3.拉取代碼並打包(war包,或者jar包)shell

  4.上傳到Linux服務器後端

  5.查看當前程序是否在運行瀏覽器

  6.關閉當前程序安全

  7.啓動新的jar包

  8.觀察日誌看是否啓動成功

  9.若是有同事說,本身還有代碼沒有提交......再次重複1到8的步驟!!!!!(一上午沒了)

  那麼,有一種工具可以實現,將代碼提交到git後就自動打包部署勒,答案是確定的:Jenkins

  固然除了Jenkins之外,也還有其餘的工具能夠實現自動化部署,如Hudson等

  只是Jenkins相對來講,使用得更普遍。

2.Jenkins服務器搭建及基本配置

2.1.簡介

  Jenkins是一個開源軟件項目,是基於Java開發的一種持續集成工具,用於監控持續重複的工做,旨在提供一個開放易用的軟件平臺,使軟件的持續集成變成可能。

2.2.Jenkins自動化部署實現原理

  

 2.3.Jenkins部署環境

  基本環境:

  1.jdk環境,Jenkins是java語言開發的,因須要jdk環境。

  2.git/svn客戶端,因通常代碼是放在git/svn服務器上的,咱們須要拉取代碼。

  3.maven客戶端,因通常java程序是由maven工程,須要maven打包,固然也有其餘打包方式,如:gradle

  以上是自動化部署java程序jenkins須要的基本環境,請本身提早安裝好,下面着重講解Jenkins的安裝部署配置。

2.4.Jenkins安裝

  1.下載安裝包jenkins.war

  2.在安裝包根路徑下,運行命令 java -jar jenkins.war --httpPort=8080,(linux環境、Windows環境都同樣);

  3.打開瀏覽器進入連接 http://localhost:8080.

  4.填寫初始密碼,激活系統

  

  5.進入插件安裝選擇

  這裏建議選擇,推薦安裝的插件,保證基本經常使用的功能可使用。

  

  選擇後,進入插件安裝頁面

  

  6.設置初始用戶和密碼

  

  7.進入系統,安裝完成

  注意,若是仍是進入不了系統,須要稍等一下,或者刷新頁面,若是仍是進入不了,須要從新啓動jenkinds服務器。

2.5.Jenkins基本配置

2.5.1.系統初始化配置 

  

  1.Configure System (系統設置)

  在系統設置這裏,咱們只須要設置最後面的一項,配置遠程服務器地址,

  即咱們代碼最終運行的服務器地址信息,就像咱們以前手動部署時使用xshell登陸Linux服務器同樣,

  固然這裏是能夠配置多臺遠程Linux服務器的,配置完成後點擊保存便可,爲後面咱們配置自動化部署作準備,配置以下圖

  

  2.Configure  Global Security (全局安全配置)

  a.配置用戶相關的權限

  

  b.配置鉤子程序(當用代碼更新時通知)訪問權限,避免報403錯誤

  默認是勾選上了的,這裏去掉勾選

  

  3.Global Tool Configuration (全局工具配置 )

  a.配置maven的全局settings路徑

  

  b.配置jdk

  

  c.配置git

  

  d.配置maven的安裝路徑

  

   4.配置必要插件

   主要是檢查以下這兩個插件是否已安裝

  插件1:Publish over SSH
  插件2:Deploy to container Plugin

  

  到這裏,咱們配置一個自動化部署的的java程序(springBoot+maven+gitHub),基本必要配置就差很少了,後面配置過程當中若是須要在配置。

3.Jenkins自動化部署(springBoot+maven+gitHub)項目

 3.1.Jenkins服務器上建立項目和配置

  大致步驟:General(基礎配置)--》源碼管理--》構建觸發器--》構建環境--》構建--》構建後操做

  1.建立一個工程

  

  2.General(基礎配置)

  僅需填寫標準部分,其餘可不填寫

  

  3.源碼管理

  

  上圖中點擊「添加」按鈕添加一組帳號和密碼

  

  4.構建觸發器

  

  如上圖:當前項目的回調地址爲:

  http://localhost:8080/job/jenkinsSpringBootDemo/build?token=token_demo2

  只要執行這個地址(在瀏覽器上訪問改地址),該項目就會發起一次構建項目,即拉取代碼打包部署操做,

  在實際中,是由git服務器回調改地址,在後面講git服務器配置時詳細講解 ,

  值得注意的是,若是你是學習測試,使用的是GitHub服務,要確保你的回調地址已經試外網映射過的,即往外網能夠訪問

  5.構建環境(無需配置)

  6.構建

  

  7.構建後操做

  構建後操做的意思是,jar打包好後,要將jar發送到哪裏去,發送後去和啓動等

  這裏須要提早在須要部署的服務器上配置好路徑,寫好啓動和中止項目的腳本,並設置爲能夠執行的腳本,

  其實就是咱們平時在Linux上手動部署項目操做的腳本

  

  案例中給出的stop.sh腳本以下:

複製代碼
1 #!/bin/bash
2 echo "Stop Procedure : demo2-0.0.1-SNAPSHOT.jar"
3 pid=`ps -ef |grep java|grep demo2-0.0.1-SNAPSHOT.jar|awk '{print $2}'`
4 echo 'old Procedure pid:'$pid
5 if [ -n "$pid" ]
6 then
7 kill -9 $pid
8 fi
複製代碼

  案例中給出的start.sh腳本以下:

複製代碼
1 #!/bin/bash
2 export JAVA_HOME=/usr/java/jdk1.8.0_131
3 echo ${JAVA_HOME}
4 echo 'Start the program : demo2-0.0.1-SNAPSHOT.jar' 
5 chmod 777 /home/ldp/app/demo2-0.0.1-SNAPSHOT.jar
6 echo '-------Starting-------' 
7 cd /home/ldp/app/
8 nohup ${JAVA_HOME}/bin/java -jar demo2-0.0.1-SNAPSHOT.jar &
9 echo 'start success'
複製代碼

   到此,Jenkinds服務器配置完成,接下來我還有要配置Linux服務器和Git服務器。

3.2.Linux服務器配置

  在Liux服務上,上傳上文中的兩個腳本,用於啓動和中止

  

3.3.GitHub服務器配置

  在GitHub服務器上的指定項目裏面配置上文中提到的回調地址

  特別注意:爲了保證回調地址網可使用,

  我已經將地址:http://localhost:8080/job/jenkinsSpringBootDemo/build?token=token_demo2,

  經過花生殼進行外網映射爲:http://zhishidi.imwork.net/job/jenkinsSpringBootDemo/build?token=token_demo2

  因此,下面配置的是外網映射地址。

  

  到這裏全部配置搞定,只需修改代碼,提交到git,而後訪問程序看是否生效。

 4.測試

   1.測試代碼

  

  2.提交代碼到git,觸發構建

  3.在GitHub服務器上去看,是否已經觸發

  

  4.在Jenkins的控制檯查看是否,正在構建

  從下圖中能夠看出,正在構建

  

  5.查看當次構建的控制檯日誌

  

  說明已經啓動成功

  6.查看Linux服務器,是否上傳代碼

  

  7.在Linux上使用命令jps,查看是否啓動

  

  8.瀏覽器上訪問,看是否能用

  

  說明,已經正常啓動可使用。

  9.再次確認是否能自動化部署

  修改代碼,從新提交代碼,循環1到8步查看。

  若是測試結果是你預期的,那麼自動化部署成功。

5.總結&資料下載

5.1.總結

  自動化部署Jenkins,做爲一款工具,有着很是強大的功能,

  上面咱們只是講了生產上作Java自動化部署的一個主要流程,

  其餘的功能,你們能夠參看官方文檔:https://jenkins.io/zh/doc/

  可是,本着學習是爲了解決生產的原則,

  我的建議,用到Jenkins的什麼功能就學什麼就能夠了,

  不必把Jenkins的全部功能都學完在使用,

  就如同咱們使用word文檔同樣,並無系統的他word文檔學完後,在開始使用,而是用到什麼功能就學習什麼功能!

5.2.相關資料

  1.案例中的源碼地址:https://github.com/bangbangw/demo01.git

  2.官方文檔:https://jenkins.io/zh/doc/

  3.博客配套視頻:在線學習

相關文章
相關標籤/搜索