Jenkins學習筆記 ---Jenkins持續整合之入門篇
1.1 編寫目的
編寫本文件,旨在與大家交流經驗、分享成果。該文件主要說明了如何結合安裝配置Tomcat、JDK、Ant、Subversion等工具搭建基於Jenkins的持續整合環境。
編者按:文件涉及到Jenkins的安裝配置,但並未涵蓋Jenkins的所有功能範疇。
1.2 術語與縮略詞
術語和縮略語說明
術語及縮略詞 |
說明 |
CI |
Continuous Integration,持續整合 |
Jenkins |
用於CI的開源專案,持續整合工具,筆者所用jenkins1491.zip |
JDK |
Java開發必備工具包; 筆者所用JDK安裝包:jdk-6u25-windows-i586.exe |
JRE |
Java Runtime Environment,Java執行時環境 |
JAVA_HOME |
D:\CI\Env\Java\jdk1.6 |
CLASSPATH |
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar |
PATH |
%JAVA_HOME%\bin; %JAVA_HOME%\jre\bin;%ANT_HOME%\bin; |
ANT_HOME |
D:\CI\Env\apache-ant-1.7.0 |
Tomcat |
開源專案,Web伺服器,筆者所用apache-tomcat-6.0.26.zip |
Tomcat_Home |
D:\CI\Env\apache-tomcat-6.0.26 |
Jenkins工作目錄 |
D:\CI\Workspace |
|
|
2 基於Jenkins的CI環境
2.1 搭建Jenkins環境
2.1.1 安裝目錄約定
在D盤建立CI目錄,其下包括Env、Workspace兩個目錄。
Env:請將Java、Ant、Tomcat、findbugs等工具都安裝在此目錄下;
Workspace:Jenkins工作目錄,比如從SVN獲取的程式碼等內容都存放在此目錄下。
筆者強烈建議按上圖所示目錄結構進行各類工具的安裝,在後期會給大家帶來很大的好處,比如環境變數的配置,Ant指令碼的簡單複用等等。
2.1.2 JDK安裝
JDK的安裝過程跟普通的Windows程式安裝過程類似,只要不停的Next就可以啦,詳細的安裝步驟在此略過。
參照“2.1.4 環境變數配置”配置後環境變數後,在Dos視窗下,輸入java-version並回車,如果出現下圖所示提示,說明JDK已經安裝配置成功了。
2.1.3 Ant安裝
筆者使用的是免安裝版Ant(apache-ant-1.7.0.rar),只要解壓即可。
參照“2.1.4 環境變數配置”配置後環境變數後,在Dos視窗下,輸入ant -version並回車,如果出現下面的提示,說明Ant已經安裝配置成功了。
2.1.4 環境變數配置
在安裝完成JDK與Ant以後,還需要正確的配置環境變數才可以使用,您需要新增JAVA_HOME、CLASS_PATH以及ANT_HOME三個環境變數,修改PATH環境變數。在修改PATH環境變數時,請在已有的PATH變數內容後面附加。詳情請參閱章節“1.2術語與縮略詞”,如果您按筆者建議的目錄結構安裝與解壓,你只需要簡單複製相關內容即可。
請點選“我的電腦—屬性—高階—環境變數”,以開啟環境變數配置視窗,如下圖所示。
2.1.5 安裝Tomcat
筆者使用的是免安裝版apache-tomcat-6.0.26,簡單的壓縮檔案,只要解壓即可。
Tomcat安裝或解壓完成後,在Tomcat的安裝路徑下找到:bin/startup.bat
雙擊執行該檔案,如果彈出如下的Console視窗,則說明Tomcat已經可以正常啟動了。
在你的瀏覽器位址列上鍵入:http://127.0.0.1:8080/
按下回車,如果能夠看到如下頁面,則說明你的Tomcat已經安裝成功啦。
Tips:
1、如果Tomcat不能正常啟動,請檢查你的環境變數中是不是已經正確設定了[JAVA_HOME]。
2、如果啟動Tomcat發生了埠衝突提示,請關閉佔用埠的應用;或是修改Tomcat的配置檔案 [{tomcat_home}/conf/server.xml],按註釋的說明,修改相應埠。
2.1.6 安裝Jenkins
Jenkins是以J2EE Web應用包的形式提供的。筆者所使用的檔案是jenkins1491.zip。請將該檔案重新命名為Jenkins.war(為了文件編寫方便)。
請將Jenkins.war拷貝至tomcat_home的webapps目錄下:
{tomcat_home}/webapps
Tomcat會自動部署Jenkins(如果遇到部署異常,嘗試重啟tomcat),如下圖所示:
顯示Jenkins is fully up and running則jenkins環境已經啟動完成。
在瀏覽器位址列輸入:http://本地IP地址:8080/Jenkins
按下回車,如果能夠出現如下圖所示頁面,說明你的Jenkins安裝成功了。
2.2 配置Jenkins
這一節開始我們來了解Jenkins基本環境的配置。
在Jenkins首頁,左側選單欄有四個功能選單【新Job】、【檢視使用者】、【任務歷史】、【系統管理】。
點選【系統管理】,進入系統管理頁面,如下圖所示:
在上圖所示系統管理頁面中,我們主要關心的是【系統設定】項,請點選【系統設定】連結,進入系統設定頁面,找到如下圖所示配置內容:
在上圖中,單擊【新增JDK】:
取消對【自動安裝】選項的選擇,出現如下內容,在其中填寫完成【別名】、【JAVA_HOME】即完成了對JDK的配置。
【Ant】的配置跟【JDK】類似,在此不再贅述,配置完成後的頁面,請參照下圖。
對於【Subversion】和【Jenkins URL】的配置請參見下圖,需要說明的是,在配置【Jenkins URL】的時候,請填寫您的Jenkins伺服器的IP地址。
點選頁面最下方的【Save】按鈕,儲存即可。
現在,我們已經完成Jenkins環境的基本配置了。
2.3 Jenkins外掛安裝
Jenkins基礎環境安裝完成了,接下來我們介紹如何安裝Jenkins外掛。
目前,筆者主要用到了如下外掛:
外掛名稱 |
版本 |
說明 |
Publish Over SSH |
1.9 |
用於上傳發布包的外掛。 |
Static Analysis Utilities |
1.48 |
用於輔助分析構建結果的外掛。 |
FindBugs Plugin |
4.45 |
用於自動構建時自動按規則檢查程式碼的外掛。 |
1.0.9 |
用於自動測試程式碼覆蓋率的外掛。 |
|
Tagging Plugin Subversion |
1.16 |
用於SVN打標籤時使用的外掛。 |
Build PipelinePlugin |
1.3.3 |
Job級聯展示外掛。 |
有需要的同事,可以向筆者獲取已經下載好的外掛。
2.3.1 本地上傳安裝外掛
在Jenkins首頁,依次點選【系統管理】、【管理外掛】,如果在【已安裝】Tab也沒有找到需要的外掛,那我們需要安裝它。如下圖:
在【高階】頁面中找到“上傳外掛”部分,選擇【瀏覽】,找到本地.jpi檔案點選【上傳】即可。
記得上傳完成所有需要的外掛後要重啟Tomcat才會生效哦!
好了,到這裡我們已經基本完成了jenkins環境的安裝。如果有問題再回過頭看看相應的章節,是否有配置錯誤的地方,好好檢查下吧!
2.4 Jenkins許可權管理
Jenkins基於角色的使用者管理就要藉助外掛“Role-basedAuthorization Strategy”,該外掛的安裝可以採用線上安裝或者下載之後本地安裝,安裝的過程都很簡單快捷,切記外掛安裝之後要重啟Jenkins服務。
2.4.1 啟用安全策略
要想使用Jenkins的許可權管理功能,通常要遵循如下幾個步驟:
一:首先要在“系統設定”裡面的勾選“啟用安全”選項。如下圖所示:
二:註冊“admin”管理員賬號,註冊“admin”賬號之後Jenkins會預設設定為管理員許可權。註冊其他賬號是不會預設分配許可權的。
三:安裝“Role-BasedStrategy”外掛並且啟用為當前的“授全策略”。
四:以上幾步配置完成之後,就會在“系統管理”裡面出現一個新的選項“Manage and Assign Roles”。、
2.4.2 許可權配置
角色管理分兩類,一類是“Global roles”基於全域性的角色設定,另一類是“Project roles”基於專案的角色設定。
一:“Global roles”通常用來設定 “系統管理員”,“任務的建立者”,“anonymous”等的全域性性角色,諸如“Overall”,“Slave”等許可權的設定。
二:“Project roles”通常是用來設定某個專案針對某些人員的區域性性角色,諸如“Job”,“Run”等許可權的設定。
三:值得注意的是“Global roles”會覆蓋“Project roles”具有相配置項的許可權。
四:“Project roles”的“Pattern”屬性是採用後置萬用字元的方式來配置的,是嚴格區分大小寫的。比如下圖“testerA”角色就是應用與專案名稱為“New”開始的專案。
一:使用者分配角色可以同時分配“Global roles”和“Project roles”,如下圖所示:
二:即使用者“gavin”有與角色“testerA”和“testerB”所對應的專案許可權,而使用者“leq”就只具有與角色“testerB”所對應的專案許可權,如下圖所示:
3 附錄
暫無。