持續集成:jenkins2.0實施要點

自動化部署是自動化運維的重要內容之一,如果一個公司經常喊自動化運維,但沒有持續集成的概念,沒有實施自動化部署,還需要程序員手工打包部署,那麼無疑其生產方式是落後的。持續集成的工具有很多,jenkins是其中典型代表之一。


1、經過測試,jenkins2.0tomcat6.0.39+jdk1.6下面跑不起來,換jdk1.8下則可以。


2、修改jenkins運行家目錄

Jenkins默認保存所有的數據文件在/root/.jenkins,這個路徑比較彆扭,修改的話,方法有二:

1)、直接在tomcat的catalina.sh裏面添加:export JENKINS_HOME=

2)、直接在環境文件裏設置,如/etc/profile


3、讓jenkins使用特定的jdk版本進行構建

經過測試,在build.xml裏面配置單獨的jdkpath貌似不管用,執行ant還是會用系統自己的jdk版本編譯。那麼,如何配置單獨的jdk版本呢?方法是在jenkins系統管理——系統設置裏面增加一個全局屬性,設置一下JAVA_HOME,如下圖:

wKiom1dFFNqAqTKZAAAgQY0KovQ468.png


4、發郵件。

jenkins的郵件插件和擴展郵件插件用起來太麻煩,個人強烈建議直接用python整一個腳本,python的smtplib庫簡單好用,發送html+圖片是很容易,相比linux的mailx,強大很多。如果構建失敗,調用此腳本將build日誌發送給相關人士即可。


5、自動部署

jenkins的自動部署是通過一個名爲“Deploy to container Plugin”的插件完成的,原理是利用tomcat的admin接口將war包導進去。個人感覺也不太好使,大家都知道,tomcat雖然可以自動識別war包,但是安全的做法是需要重啓,不重啓的話,經過反覆部署war包,jvm會慢慢出現問題。而且重啓的時候,shutdown往往不夠徹底,必須kill -9幹掉tomcat進程才行。基於此,本人也推薦手工完成自動部署,在jenkins機器和遠程機器之間建立互信,先備份,然後上傳war包,再重啓。即便如此,也要注意對遠程web服務器進行監控,本人遇到一次遠程web服務器內存不夠(用了很多swap),導致部署過去的war包,lib加載不進去導致項目啓動失敗,報監聽啓動錯誤:SEVERE: Error listenerStart




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章