最近工作需要使用jenkins來持續部署Spring Boot項目,在網上爬了很多教程,這方面的教程也不是很多,也掉了很多坑。jenkins要安裝起來雖然不難,但也不算太容易。因此萌發了寫這篇教程的想法,共享給大家一起進步。
下面我們開始教程
Jenkins簡介
Jenkins是基於Java開發的一種持續集成工具,用於監控持續重復的工作。簡單點來講就是配置好Jenkins以后可以一鍵發布項目,包括從git master分支拉取最新的代碼,然后打包,然后上傳到遠程Linux服務器發布等一系列步驟它都可以幫你一鍵完成。這無疑可以省去很多程序員重復性繁瑣的操作。特別是對於現在的spring cloud微服務來說,一個項目由多個小項目組成,每個小項目都獨立部署,使用jenkins是最好的部署和管理工具了。
本教程分為兩部分,第一部分是安裝教程,第二部分是使用教程。
第一部分:安裝教程
環境和所需軟件:centos6.5、tomcat8
前提:請確保你的jdk和maven環境已經安裝配置妥當。
一、下載jenkins.war包,war包可以去官網下載,隨后我會附上下載鏈接,可以避免因為版本帶來的各種腦殘錯誤。
二、將jenkins.war包放到tomcat webapp的目錄下,啟動tomcat
三、瀏覽器訪問jenkins。http://192.168.0.101:90/jenkins 。這里我用的是局域網里的Linux,請注意替換成自己的IP,端口號默認是8080,如果沒有修改過tomcat則不用更改,我這里是更改過后的端口號。
四、在jenkins中配置jdk和maven

五、安裝git plugin插件(用於從git拉取最新的代碼)和publish over ssh插件(用於上傳打包好的項目到遠程Linux)。進入系統管理--管理插件--可選插件,在搜索框里面輸入git plugin 和publish over ssh,然后點擊安裝即可。安裝好以后可以在“已安裝”選項里面看看是否安裝成功。

六、重啟tomcat來重啟jenkins,讓上面兩個插件生效。到此jenkins安裝完畢,下面開始第二部分--使用教程。
第二部分:使用教程
其實使用教程也可以分為兩步,第一步:jenkins從git master分支抓取最新代碼自動構建打包;第二步:將打包好的jar包上傳到Linux遠程端,關閉正在運行的項目,然后運行新的jar項目。
第一步:
一、打開jenkins首頁,點擊新建項目

二、輸入Item名稱,選擇maven項目,點擊ok

三、配置git。配置后jenkins可自動從指定的git抓取master分支上最新的代碼

四、點擊add,配置git用戶名和密碼

五、如果出現下圖錯誤,則證明本機沒有配置git ssh key

解決上述ssh key問題,可參考以下教程鏈接
http://www.linuxidc.com/Linux/2014-10/108080.htm
六、點擊保存,至此已經可以實現jenkins從git抓取最新的master分支代碼。點擊立即構建。
點擊consoleoutput可看控制台輸出信息。如果在這步還報下圖錯誤,這是因為在know_hosts中沒有訪問git機器的記錄。

解決辦法:在Linux下git clone訪問一次git 所在的機器的項目,如下圖。如果你沒有出現這個錯誤,請忽略。

再次啟動,點擊console output可看到成功啟動的信息。

八、至此已完成本教程的第二部分的第一步曲,jenkins從git抓取最新項目然后自動構建打包的過程。從控制台信息中可看出jenkins已經將打好的jar包放在了/root/.jenkins/workspace/..工作空間中。如果你看到了這個圖,證明前面的配置都是正確的,可以接着往下走。
第二步:
一、打開jenkins首頁,點擊系統管理--系統設置,下拉找到找到publish over ssh,進行以下設置(請確保前面的步驟中publish over ssh插件已經安裝成功,如果沒有發現,那就是還沒有安裝成功,請返回去安裝)。

注:Remote Directory是ssh直連的地址,可以配置每個項目的單獨腳本來操作其他····。
細心的童鞋可能在這里可能會發現服務器的IP與jenkins安裝的IP是一樣的,也就是說都是都在同一台機器上,都是192.168.0.101,這是因為剛好只有這台Linux機器比較方便使用,所以就只用這一台機器做實驗了。實際上jenkins安裝在Windows上或者Linux上,然后項目部署到另外一台Linux,這樣都是可以的,也推薦這么干,只要這里的IP換成部署項目的機器IP就可以了
二、進入上面的已經創建好的jenkinsWeb項目,點擊配置,下拉找到Post Steps進行配置。
1、點擊

如果沒找到這項,證明publish over ssh沒有安裝成功。
2、接着進行下圖配置

參數說明:
Transfer SetSource files:表示要上傳的本地的jar包及路徑,可到工作空間去看。
Remove prefix:表示要上傳時要去除的文件夾,即只上傳jar包。
remote driectory:即表示執行時的路徑,相當於把jar包上傳到這里了。
exec commad:要執行的命令腳本。
腳本內容:

將此腳本放於上面的Exec commad路徑中。
大概說一下這個腳本的意思,大牛請忽略這段吧。先找到正在運行的jenkins這個項目的ID,然后kill掉這個進程,就可以停掉這個項目了。假如你用的不是springboot項目,則靈活應變,例如tomcat發布的項目可以到tomcat的bin目錄下運行shutdown.sh就可以了。然后打開root目錄,將jenkins上傳好的jar包復制到相應的目錄,然后執行bootstrap.sh腳本,我這里的bootstrap.sh腳本是用來啟動springboot項目,下面也貼上代碼,供大家參考。假如是tomcat,同理到tomcat目錄bin目錄下執行啟動腳本即可。

這里請務必注意第一行,必須制定JAVA_HOME的位置,否則jenkins會報找不到jre的錯誤。
三、至此,第二步已經配置完畢,點擊保存。點擊立即構建,點擊consoleoutput,就可以看到成功上傳jar包到遠程Linux並且成功發布項目的信息了。

至此已完成所有jenkins配置。瀏覽器訪問剛才發布的項目

項目代碼修改后,只需將代碼提交到git master分支,然后登陸jenkins點擊立即構建,則可以輕松的進行項目部署。Jenkins亦可進行定時構建部署,當然也可設置當master代碼有更新時自動拉取代碼進行構建部署,這里就不繼續說了。
jenkins下載鏈接:http://pan.baidu.com/s/1jIx3FcM
教程到此結束,歡迎留言討論。歡迎轉載,轉載請務必注明出處。
原文地址