jenkins是一個廣泛用于持續構建的可視化web工具,持續構建說得更直白點,就是各種項目的"自動化"編譯、打包、分發部署。jenkins可以很好的支持各種語言(比如:java, c#, php等)的項目構建,也完全兼容ant、maven、gradle等多種第三方構建工具,同時跟svn、git能無縫集成,也支持直接與知名源代碼托管網站,比如github、bitbucket直接集成。
jenkins官網地址為http://jenkins-ci.org/,jenkins本身是用java語言開發的,所以安裝jenkins的機器至少要有jdk,另外建議git、ant、maven、gradle、groovy等工具也一并安裝好,方便與這些構建工具集成。
一、安裝及啟動(本文環境為mac os)
直接從http://mirrors.jenkins-ci.org/war/latest/jenkins.war 下載最新的war包,然后解壓到某個固定目錄就算安裝完成了,非常方便。
啟動方法: java -jar jenkins.war 即可,如果要以后臺進程的方式啟動,改成nohup java -jar jenkins.war & 即可,啟動過程中,它會將war包解壓到~/.jenkins目錄下,并生成一些目錄及配置文件,有興趣的同學可以自己進入這個目錄研究一下。
二、更新及下載插件
啟動成功后,瀏覽http://localhost:8080/ (如果不是安裝在本機,localhost請自行換成服務器對應ip)
參考上圖,進入Manage Plugins的界面,jenkins的很多功能都是借助plugin來完成的,首次啟動時很多插件會提示已經過時,需要更新,建議升級成最新版本,同時建議安裝以下插件,以方便支持git項目及向遠程機器上傳文件及執行遠程shell命令。
插件升級完后,重啟jenkins以便讓其生效。
三、安全設置
默認情況下,jenkins允許匿名用戶做任何事情,這也就意味著誰都可以使用jenkins進行發布,這顯然不夠安全,jenkins支持多種安全認證機制,下面演示最傳統的用戶名/密碼模式如何設置:
參考上圖,進入Configure Global Security界面
參考上圖設置,上面的設置大概意思為采用jenkins內置的用戶名、密碼認證機制,同時允許用戶注冊,匿名用戶有管理權(首次配置時,建議允許匿名用戶有管理權限,以避免操作錯誤后,無法正常進入jenkins管理界面,等其它用戶權限都設置好以后,再去掉匿名用戶的管理權)
保存后,jenkins右上角會有一個sign up注冊鏈接,點擊進去,注冊一個用戶,參考下圖:
然后再進入安全設置界面:
可以看到,用戶列表多了一個yangjm的用戶,而且有管理權限,可以嘗試用yangjm的用戶名登錄一下,如果ok,就可以去掉匿名用戶的管理權限了,一般情況下,個人建議去掉允許用戶注冊的勾選(實際應用中,一般都是提前建好所有用戶名,很少允許發布系統隨意注冊),保存后,再次訪問jenkins
就會強制只能登錄用戶才能使用了。
四、系統配置
在正式創建部署項目前,還有幾個關鍵參數要設置,如下圖:
首先是jdk
其次是ant、maven參數
如果需要打包gradle項目,gradle也要配置
對于git托管的項目,git配置是不可少的
如果部署過程中,還需要運行shell腳本,以及通過scp向遠程機器上傳文件,則需要配置下面這些
注:上圖中紅色標1的地方,填寫的是本機的ssh私鑰證書,紅色標2的地方為證書的訪問密碼,如果未設置證書密碼,直接留空,Root Repository Path為遠程服務器的上傳根目錄,hostname即為遠程服務器的機器名稱(或IP).
此外,還有一個強大的publish over ssh,不僅能向遠程服務器上傳文件,還能遠程執行服務器上的Shell腳本,可參考下面配置
跟SCP的參數設置類似,不過這個插件多出了一個Test Configuration的按鈕,如果參數正確,點擊該按鈕后,會嘗試連接到遠程服務器,成功的話,會顯示Success.
文章列表