jenkins+Gitlab+maven+tomcat實現自動集成、打包、部署

1、前言

首先出於提升本身技術水平和琢磨能作點什麼能提升工做效率,上線工做實在無聊、重複(手動編譯、打包,傳包,重啓),因而就想到了jenkins,jenkins持續集成已經不是什麼新鮮的話題,網上文章一大堆,俗話說天下文章一大抄,基本上就是那三五篇,相信要是之前沒接觸過的人沒有兩三天是弄不出來的,特別是身爲運維崗,一些關於開發的東西仍是不太懂,在搭建以前什麼持續集成、持續構建、持續部署這些概念真是搞不懂,也許是我比較愚笨,在我研究的這段時間裏,真是一步一個坑,想一想這人品,寫這個的目的不爲何,但願後來者少踩坑,也爲本身作個記錄。html

2、環境

一、粘一副從網上看見的我認爲好理解的圖java

二、服務器環境git

一臺jenkins服務器:192.168.4.117web

一臺gitlab服務器:192.168.4.81apache

一臺測試服務器:192.168.4.91vim

3、環境搭建

一、gitlab安裝:因爲以前已經寫過gitlab安裝的博客,在此就不重複寫了,把地址粘出來:http://www.cnblogs.com/lidong94/p/7161717.html瀏覽器

二、jenkins安裝tomcat

(1)安裝能夠用war包也能夠用rpm包,可是我的認爲仍是war包好用方便,首先下載好jenkins的war包,地址:http://mirrors.jenkins.io/war-stable/2.32.3/服務器

(2)安裝jdk,建議使用1.8以上的版本,安裝好jdk以後執行:vim /etc/profile  在這個文件最後加入以下代碼:app

export JAVA_HOME=/usr/local/jdk1.8.0_131
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

 (3)而後執行如下命令,這樣是使用默認的8080端口,也能夠修改使用別的端口,固然這個war包也能夠放到tomcat裏啓動,這裏就不介紹tomcat啓動的方式了。

java -jar jenkins.war

(4)到這裏jenkins就安裝成功了,能夠經過瀏覽器訪問:http://192.168.4.117:8080

4、jenkins配置

(1)第一次訪問時會出現這個頁面

cat標紅的那個路徑,把內容粘到文本框內,點擊continue,稍等一分鐘以後會進入如下頁面

點擊第一幅圖安裝插件。PS:這兩幅圖的區別就是一個是自定義安裝插件,一個本身選擇要安裝的插件,建議選擇第一個,後邊用到哪些在本身安裝

等待十分鐘左右插件安裝完成,插件安裝完成以後出現以下圖

建立jenkins的第一個用戶,而後點擊 save and finish

點擊開始使用jenkins

這就是jenkins的主界面,接下來開始jenkins之旅

5、jenkins界面配置

相信好多人到這一步以後就不明白該怎麼作了,我曾經搭建過四五次到這裏,可是每次新建項目的時候就懵懵懂懂的,稀裏糊塗的建一個項目,而後就擱置了,仍是那句話,作什麼事情以前先想明白本身想要什麼,好了,廢話很少說,咱們的初衷就是要實現只要開發提交代碼到gitlab,jenkins就會自動檢測到而且自動進行構建(合併、打包),構建完成以後將打好的包(war、jar包均可以)經過jenkins的插件傳到tomcat的webapps目錄下,而後重啓tomcat,實現自動打包部署。

(1)首先咱們須要配置jenkins的全局配置,包括(jdk、maven)

點擊系統管理-----global tool configuration

進去以後以下圖

maven配置默認便可,jdk配置別名隨便寫,java_home就是jdk的家目錄,不知道的話可使用java -version查詢

git設置如上圖所示,接下來配置maven,安裝maven也能夠在這裏自動安裝也能夠本身下載安裝,可是建議本身下載安裝,下載地址:wget http://mirrors.cnnic.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz下載完成解壓便可不須要過多操做,而後使用mvn -v查看安裝是否成功及安裝信息,個人安裝信息如圖記住這個路徑,這個路徑須要在下圖的maven home 配置

 

 

 以上這些配置全都在global tool configuration裏邊,配置完點擊保存

(2)接下來配置ssh鏈接信息,首先先安裝ssh插件:publish over ssh

點擊系統管理----管理插件

點擊進來以後以下圖,點擊可選插件,而後在過濾文本框處輸入publish over ssh ,把前面的複選框選中以後點擊直接安裝

 

 安裝完成後以下圖,勾選安裝完後重啓jenkins,這個插件就會生效,因爲我這個插件已經安裝,這個圖只是一個示例

安裝完成後接下來配置ssh,也就是要上傳的測試服務器ssh信息

首先咱們先要在jenkins服務器上生成祕鑰,而後利用祕鑰要進行免密登陸

在jenkins服務器上執行ssh-keygen -t rsa,一路回車就能夠  一路回車的話密碼爲空,這樣就在/root/.ssh/下生成的兩個文件id.rsa(私鑰)和id.rsa.pub(公鑰),咱們須要把公鑰的內容寫到測試服務器(tomcat服務器上)的/root/.ssh/authorized_keys文件中  若是沒有就新建一個,接下來咱們開始配置

點擊系統管理---系統設置

進去以後找到Publish over SSH項,以下圖

 

詳細解釋:Passphrase是指在生成祕鑰的時候設置的密碼,因爲咱們都是一路回車下來的因此此處不用寫

path to key是指私鑰的位置/root/.ssh/id.rsa

key是指私鑰的內容  path to key 和key任選其一便可

 name是指你要遠程到tomcat的名稱  隨便寫就能夠,後期爲了區分,因此我寫了測試服務器

hostname是指測試服務器的ip

username是指測試服務器的用戶

remote directory是指要放到測試服務器的目錄,這裏寫tomcat的部署目錄

點第一張圖左下角的高級能夠修改端口,點擊test  configuration能夠測試鏈接  ,以下圖就是測試成功,說明咱們如今已經可使用jenkins鏈接服務器了

 

 (4)如今jenkins已經能夠和遠程服務器通訊了,可是還沒和gitlab連通,接下來咱們配置gitlab和jenkins的連通,首先先安裝gitlab相關插件,關於插件安裝上面已經寫過

接下來咱們新建一個job,由於只有先建了job才能和gitlab連通,以下圖,這裏填寫一個名字如test,選擇構建一個自由風格的軟件項目,點擊ok

點擊完以後以下圖,描述這塊記得寫上,最開始這塊沒寫,在構建項目的時候會有報錯,報不能配置name[ ],這裏寫上就行了,

而後點擊源碼管理以下圖,咱們選擇git,repository url  寫gitlab倉庫的地址,credentials是指信任,咱們須要在gitlab中添加jenkins的公鑰 ,在下圖的key中填寫jenkins服務器的公鑰,title處填寫jenkins,而後在到jenkins上就能夠看到credentials處能夠選擇jenkins了,而後點擊構建觸發器選項卡

 

點擊觸發器選項卡以後以下圖,咱們點擊Build when a change is pushed to GitLab. GitLab CI Service URL: http://192.168.4.117:8080/project/test,記住這個url地址,待會咱們須要在gitlab上配置  ,而後點擊構建選項卡   構建環境暫不配置,

點擊構建選項卡以後以下圖:maven version處選擇咱們在global tool configuration處配置的maven名稱  goals處填寫maven命令,由於咱們要打包,因此填寫clean package,不懂的能夠去學一下maven命令,而後點擊構建後操做選項卡

點擊構建後選項卡以後以下圖,選擇send build artifacts over ssh  ,name處選擇咱們配置的測試服務器,transfers這裏特別須要注意,我在這邊卡了大半天,由於網上寫的文章含糊不清 source files 處填寫想要傳到遠程服務器的東西 ,能夠是目錄、war包、jar包等均可以,這個路徑是至關於workspace的路徑  workspace目錄能夠在/root/.jenkins/workspace/找到因此說這裏不用寫/root/.jenkins/workspace/  由於咱們構建完的war包或者jar包在/root/.jenkins/workspace/job名/target/下因此這裏能夠寫target/war包名.war或者**/*.war,

remove prefix是指當把war包傳到服務器的時候去掉source files處填寫的war包以前的路徑,要是不去除的話會在tomcat的webapps建一個target  target之下才是war包,這固然不是咱們想要的

remove directory 是指遠程到服務器的目錄   這個在這就不配置了  由於咱們在系統設置處已經配置  這邊直接調用就能夠

exec command是指傳過去包以後執行的命令,這裏也能夠調用腳本,

 而後點擊保存就能夠了這樣咱們就建完了一個job,有的人可能會想起來還沒配置gitlab,good,還記得建job的時候要記住的那個url地址嗎,接下來咱們須要在gitlab中找到web hooks這個選項,不一樣的gitlab   web hooks在不一樣的地方  ,個人是在下圖點擊integrations

點擊integrations後以下圖,須要把jenkins的url:http://192.168.4.117:8080/project/test填到此處,而後點擊添加web hooks,這個web hooks的做用就是jenkins檢測到gitlab有代碼提交就會觸發jenkins進行構建

到此,jenkins自動打包,上傳就配置完成了,接下來咱們驗證一下,我提交代碼到gitlab一下,控制檯輸出以下,

咱們到測試服務器的webapps下驗證以下,jar包已經傳到tomcat下了

jenkins+Gitlab+maven+tomcat實現自動集成、打包、部署

相關文章
相關標籤/搜索