? ? ? ? 最近工作需要使用jenkins來持續(xù)部署Spring Boot項(xiàng)目,在網(wǎng)上爬了很多教程,這方面的教程也不是很多,也掉了很多坑。jenkins要安裝起來雖然不難,但也不算太容易。因此萌發(fā)了寫這篇教程的想法,共享給大家一起進(jìn)步。
下面我們開始教程
Jenkins簡(jiǎn)介
? ? ? ? ? Jenkins是基于Java開發(fā)的一種持續(xù)集成工具,用于監(jiān)控持續(xù)重復(fù)的工作。簡(jiǎn)單點(diǎn)來講就是配置好Jenkins以后可以一鍵發(fā)布項(xiàng)目,包括從git master分支拉取最新的代碼,然后打包,然后上傳到遠(yuǎn)程Linux服務(wù)器發(fā)布等一系列步驟它都可以幫你一鍵完成。這無疑可以省去很多程序員重復(fù)性繁瑣的操作。特別是對(duì)于現(xiàn)在的spring cloud微服務(wù)來說,一個(gè)項(xiàng)目由多個(gè)小項(xiàng)目組成,每個(gè)小項(xiàng)目都獨(dú)立部署,使用jenkins是最好的部署和管理工具了。
本教程分為兩部分,第一部分是安裝教程,第二部分是使用教程。
第一部分:安裝教程
環(huán)境和所需軟件:centos6.5、tomcat8
前提:請(qǐng)確保你的jdk和maven環(huán)境已經(jīng)安裝配置妥當(dāng)。
一、下載jenkins.war包,war包可以去官網(wǎng)下載,隨后我會(huì)附上下載鏈接,可以避免因?yàn)榘姹編淼母鞣N腦殘錯(cuò)誤。
二、將jenkins.war包放到tomcat webapp的目錄下,啟動(dòng)tomcat
三、瀏覽器訪問jenkins。http://192.168.0.101:90/jenkins 。這里我用的是局域網(wǎng)里的Linux,請(qǐng)注意替換成自己的IP,端口號(hào)默認(rèn)是8080,如果沒有修改過tomcat則不用更改,我這里是更改過后的端口號(hào)。
四、在jenkins中配置jdk和maven
五、安裝git plugin插件(用于從git拉取最新的代碼)和publish over ssh插件(用于上傳打包好的項(xiàng)目到遠(yuǎn)程Linux)。進(jìn)入系統(tǒng)管理--管理插件--可選插件,在搜索框里面輸入git plugin 和publish over ssh,然后點(diǎn)擊安裝即可。安裝好以后可以在“已安裝”選項(xiàng)里面看看是否安裝成功。
六、重啟tomcat來重啟jenkins,讓上面兩個(gè)插件生效。到此jenkins安裝完畢,下面開始第二部分--使用教程。
第二部分:使用教程
其實(shí)使用教程也可以分為兩步,第一步:jenkins從git master分支抓取最新代碼自動(dòng)構(gòu)建打包;第二步:將打包好的jar包上傳到Linux遠(yuǎn)程端,關(guān)閉正在運(yùn)行的項(xiàng)目,然后運(yùn)行新的jar項(xiàng)目。
第一步:
一、打開jenkins首頁,點(diǎn)擊新建項(xiàng)目
二、輸入Item名稱,選擇maven項(xiàng)目,點(diǎn)擊ok
三、配置git。配置后jenkins可自動(dòng)從指定的git抓取master分支上最新的代碼
四、點(diǎn)擊add,配置git用戶名和密碼
五、如果出現(xiàn)下圖錯(cuò)誤,則證明本機(jī)沒有配置git ssh key
解決上述ssh key問題,可參考以下教程鏈接
http://www.linuxidc.com/Linux/2014-10/108080.htm
六、點(diǎn)擊保存,至此已經(jīng)可以實(shí)現(xiàn)jenkins從git抓取最新的master分支代碼??。點(diǎn)擊立即構(gòu)建。
點(diǎn)擊consoleoutput可看控制臺(tái)輸出信息。如果在這步還報(bào)下圖錯(cuò)誤,這是因?yàn)樵趉now_hosts中沒有訪問git機(jī)器的記錄。
解決辦法:在Linux下git clone訪問一次git 所在的機(jī)器的項(xiàng)目,如下圖。如果你沒有出現(xiàn)這個(gè)錯(cuò)誤,請(qǐng)忽略。
再次啟動(dòng),點(diǎn)擊console output可看到成功啟動(dòng)的信息。
八、至此已完成本教程的第二部分的第一步曲,jenkins從git抓取最新項(xiàng)目然后自動(dòng)構(gòu)建打包的過程。從控制臺(tái)信息中可看出jenkins已經(jīng)將打好的jar包放在了/root/.jenkins/workspace/..工作空間中。如果你看到了這個(gè)圖,證明前面的配置都是正確的,可以接著往下走。
第二步:
一、打開jenkins首頁,點(diǎn)擊系統(tǒng)管理--系統(tǒng)設(shè)置,下拉找到找到publish over ssh,進(jìn)行以下設(shè)置(請(qǐng)確保前面的步驟中publish over ssh插件已經(jīng)安裝成功,如果沒有發(fā)現(xiàn),那就是還沒有安裝成功,請(qǐng)返回去安裝)。
細(xì)心的童鞋可能在這里可能會(huì)發(fā)現(xiàn)服務(wù)器的IP與jenkins安裝的IP是一樣的,也就是說都是都在同一臺(tái)機(jī)器上,都是192.168.0.101,這是因?yàn)閯偤弥挥羞@臺(tái)Linux機(jī)器比較方便使用,所以就只用這一臺(tái)機(jī)器做實(shí)驗(yàn)了。實(shí)際上jenkins安裝在Windows上或者Linux上,然后項(xiàng)目部署到另外一臺(tái)Linux,這樣都是可以的,也推薦這么干,只要這里的IP換成部署項(xiàng)目的機(jī)器IP就可以了
二、進(jìn)入上面的已經(jīng)創(chuàng)建好的jenkinsWeb項(xiàng)目,點(diǎn)擊配置,下拉找到Post Steps進(jìn)行配置。
1、點(diǎn)擊
如果沒找到這項(xiàng),證明publish over ssh沒有安裝成功。
2、接著進(jìn)行下圖配置
參數(shù)說明:
Transfer SetSource files:表示要上傳的本地的jar包及路徑,可到工作空間去看。
Remove prefix:表示要上傳時(shí)要去除的文件夾,即只上傳jar包。
remote driectory:即表示執(zhí)行時(shí)的路徑,相當(dāng)于把jar包上傳到這里了。
exec commad:要執(zhí)行的命令腳本。
腳本內(nèi)容:
將此腳本放于上面的Exec?commad路徑中。
大概說一下這個(gè)腳本的意思,大牛請(qǐng)忽略這段吧。先找到正在運(yùn)行的jenkins這個(gè)項(xiàng)目的ID,然后kill掉這個(gè)進(jìn)程,就可以停掉這個(gè)項(xiàng)目了。假如你用的不是springboot項(xiàng)目,則靈活應(yīng)變,例如tomcat發(fā)布的項(xiàng)目可以到tomcat的bin目錄下運(yùn)行shutdown.sh就可以了。然后打開root目錄,將jenkins上傳好的jar包復(fù)制到相應(yīng)的目錄,然后執(zhí)行bootstrap.sh腳本,我這里的bootstrap.sh腳本是用來啟動(dòng)springboot項(xiàng)目,下面也貼上代碼,供大家參考。假如是tomcat,同理到tomcat目錄bin目錄下執(zhí)行啟動(dòng)腳本即可。
這里請(qǐng)務(wù)必注意第一行,必須制定JAVA_HOME的位置,否則jenkins會(huì)報(bào)找不到j(luò)re的錯(cuò)誤。
三、至此,第二步已經(jīng)配置完畢,點(diǎn)擊保存。點(diǎn)擊立即構(gòu)建,點(diǎn)擊consoleoutput,就可以看到成功上傳jar包到遠(yuǎn)程Linux并且成功發(fā)布項(xiàng)目的信息了。
至此已完成所有jenkins配置。瀏覽器訪問剛才發(fā)布的項(xiàng)目
項(xiàng)目代碼修改后,只需將代碼提交到git master分支,然后登陸jenkins點(diǎn)擊立即構(gòu)建,則可以輕松的進(jìn)行項(xiàng)目部署。Jenkins亦可進(jìn)行定時(shí)構(gòu)建部署,當(dāng)然也可設(shè)置當(dāng)master代碼有更新時(shí)自動(dòng)拉取代碼進(jìn)行構(gòu)建部署,這里就不繼續(xù)說了。
jenkins下載鏈接:http://pan.baidu.com/s/1jIx3FcM
教程到此結(jié)束,歡迎留言討論。歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)務(wù)必注明出處。