Jenkins安裝及自動打包部署

1.jenkins背景介紹

  在實際開發中,我們經常要一邊開發一邊測試,當然這裏說的測試並不是程序員對自己代碼的單元測試,而是同組程序員將代碼提交後,由測試人員測試;

  或者前後端分離後,經常會修改接口,然後重新部署;

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

  手動打包常規步驟:

1.提交代碼

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

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

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.或通過yum安裝

1、添加yum repos,然後安裝

 

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo

sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key

 注:如果上邊的執行成功就不用再執行這兩行了

 

sudo wget -O /etc/yum.repos.d/jenkins.repo

http://pkg.jenkins-ci.org/RedHat/jenkins.repo

sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key

 注:如果網絡不好需要重試幾次

 

sudo yum install jenkins

啓動和停止

 

sudo service jenkins start

sudo service jenkins stop

sudo service jenkins restart

jenkins配置文件

 

vi /etc/rc.d/init.d/jenkins

2、jenkins的默認設置

Jenkins會隨系統啓動而啓動。詳情參照/etc/init.d/jenkins
Jenkins會創建一個用戶叫做jenkins, 如果你修改了user,則要修修改所屬者:/var/log/jenkins,/var/lib/jenkins,/var/cache/jenkins
  如果遇到問題,查看日誌/var/log/jenkins/jenkins.log
  配置文件/etc/sysconfig/jenkins
  默認啓用8080

內容改爲需要的端口

 

JENKINS_PORT="8080"

 

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

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

 

5.進入插件安裝選擇

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

 

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

插件管理中,有可更新、可選插件、已安裝,日常的插件安裝都是在這個界面上完成的。比如爲了和gitlab協同,我們需要安裝gitlab的插件。

 

當插件安裝不上的時候,可以直接去網上瞎子啊,進行安裝

1

2

3

4

5

6

7

下載地址

http://updates.jenkins-ci.org/

 

解壓備份plugin.tar.gz

mv plugins /var/lib/jenkins/

chown -R jenkins.jenkins plugins/

service jenkins restart

 

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

插件:svn、git、maven

 

  到這裏,我們配置一個自動化部署的的java程序,基本必要配置就差不多了,後面配置過程中如果需要在配置。

3.Jenkins自動化部署項目

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

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

1.創建一個maven工程

 

2.General(基礎配置)

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

 

3.源碼管理

 

  上圖中點擊“添加”按鈕添加一組賬號和密碼

4.構建觸發器

 

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

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

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

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

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

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

6.構建

 

7.構建後操作

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

  這裏需要提前在需要部署的服務器上配置好路徑,寫好啓動和停止項目的腳本,並設置爲可以執行的腳本,

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

 

本例中publish.sh腳本如下:

 

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

3.2.Linux服務器配置

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

 

  到這裏所有配置搞定,只需修改代碼,提交到svn,然後訪問程序看是否生效。

 4.Jenkins構建測試

1、點擊立即構建,在jenkins控制檯查看是否正在構建,從下圖可看出正在構建

 

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

     說明已經啓動成功

 

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

 

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

 

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

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

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

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

5.總結&資料下載

5.1.總結

  自動化部署Jenkins,作爲一款工具,有着非常強大的功能,

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

  其他的功能,大家可以參看官方文檔:https://jenkins.io/zh/doc/

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

  個人建議,用到Jenkins的什麼功能就學什麼就可以了,

  沒必要把Jenkins的所有功能都學完在使用,

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

5.2.相關資料

1.參考:https://www.cnblogs.com/wfd360/p/11314697.html

2.定時構建:https://www.cnblogs.com/yy-cola/p/9483472.html

3.介紹:https://www.cnblogs.com/jimmy-xuli/p/9020825.html

4.自動構建https://blog.csdn.net/qq_33157666/article/details/86735906

https://blog.csdn.net/pucao_cug/article/details/82531681

https://blog.csdn.net/qq_37372007/article/details/81586751

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

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

發佈了13 篇原創文章 · 獲贊 7 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章