需求:項目是java maven項目敬鬓,每次修改后上線流程為 :
修改代碼-->上傳到git服務器-->從git上拉取新代碼-->執(zhí)行mvn clean package將項目打包成war包--->復制到tomcat的webapps下笙各,重啟tomcat服務杈抢,項目完成更新春感。 以上步驟均為人工完成。
如何利用jenkins實現(xiàn)持續(xù)化集成刽辙?
jenkins中安裝git 和 maven相關(guān)插件后 可實現(xiàn):
修改代碼-->上傳到git服務器-->jenkins構(gòu)建-->項目更新宰缤。只有將代碼上傳git為人工慨灭,其余均為自動部署氧骤。
中間jenkins做了什么呢?替代了上面所說的人為的過程:
jenkins從git上拉代碼到自己的workspce下镊尺,mvn插件打包庐氮,生成war包,通過構(gòu)建后寫shell實現(xiàn)tomcat那些步驟仙畦。
需要的server
1.jenkins服務器:192.168.1.252 (安裝jdk,maven)
2.git服務器:192.168.1.102 (創(chuàng)建一個git倉庫,地址:)
3.web服務器:192.168.1.101 (后面將其變成jenkins slave節(jié)點桃熄,讓任務在自己機器上執(zhí)行型奥,節(jié)省jenkins 壓力)
安裝前準備
1.jenkins服務器上要安裝maven和jdk,安裝過程見(《配置maven項目》)
2.git倉庫(1.102)創(chuàng)建:
創(chuàng)建git專用用戶(以后鏈接遠端倉庫就用這個賬戶)
yum install git
useradd git
passwd git
su - git
[git@server-3 ~]$ mkdir -p repo_git/pans.git
[git@server-3 ~]$ cd repo_git/pans.git
[git@server-3 pans.git]$ git init --bare
[git@server-3 pans.git]$ ls
branches config description HEAD hooks info objects refs
倉庫地址為:git@192.168.1.102:/home/git/repo_git/pans.git
這里倉庫就創(chuàng)建完成了烫葬,git init --bare創(chuàng)建裸倉庫搭综,只保存git歷史提交的版本信息兑巾,而不允許用戶在上面進行各種git操作忠荞。
3.web服務器(1.101)克隆git項目到本地
yum install git
隨便進入一個文件夾
git clone git@192.168.1.102:/home/git/repo_git/pans.git
項目拉下來是個空倉庫堂油,把項目放進去 碧绞,我的項目名是java_web
[root@server2 pans]# pwd
/root/bb/pans
[root@server2 pans]# ls
java_web java_web.tar.gz
然后將代碼提交到倉庫里。
git add ;git commit -m "first push";git push
Jenkins配置
1.全局配置
系統(tǒng)管理-->全局配置-->配置jdk和maven的路徑
系統(tǒng)管理里一般都是配合ssh插件配置秘鑰,或者用到郵件等功能再去配置头遭。
我這里在機器上之間都做好了ssh-keygen免秘鑰登陸寓免,就不在jenkins里配了。
創(chuàng)建一個Maven Job
左側(cè)導航欄新建任務--->創(chuàng)建一個maven項目(如果沒有计维,需要安裝maven插件[Maven Integration plugin])
JOB配置截圖:
這里由于git用的不是github所以沒有勾選github hook選項袜香,如果用的github作為代碼托管一定要配合webhook和這個構(gòu)建選項的觸發(fā)器,可實現(xiàn)自動構(gòu)建鲫惶。
腳本部分是構(gòu)建成war包后執(zhí)行的操作蜈首,功能是將生成的war 復制到tomcat web目錄下,重啟服務。
利用Jenkins Slave節(jié)點
當我們的項目打包以及job整個過程資源占用很大的時候欠母,我們的jenkins就會占用大量io以及負載踩寇。
我們可以分節(jié)點來執(zhí)行這些job。如:我在jenkins服務器點擊構(gòu)建,而執(zhí)行的時候是在添加的slave節(jié)點上去完成啡莉,這樣不會占用jenkins過多io 減輕負載该押。
如何設(shè)置jenkins salve
左側(cè)導航欄新建節(jié)點 ;輸入節(jié)點名字
保存退出。
啟動節(jié)點,可看到
salve設(shè)置好了劝篷,那么構(gòu)建的時候如何將任務分配給它哈恰?
在job設(shè)置中指定
保存退出蓬戚。
構(gòu)建一次試試:(過程主要就是Jenkins拉取git上的代碼到自己工作目錄,在將項目打成war包紧显,放到tomcat招驴,上線)