JENKINS總結
修改時間 |
修改內容 |
修改人 |
2016.3.12 |
創建 |
劉永志 |
2016.5.22 |
添加tomcat+jenkins |
劉永志 |
2016.6.14 |
添加tomcat找不到ant解決方案 |
劉永志 |
個人理解持續集成:為解決程序代碼提交質量低,提交內容導致原有系統的BUG,按時或按需自動編譯版本,進行自動化測試。
百度對持續集成的定義:持續集成是一種軟件開發實踐,即團隊開發成員經常集成他們的工作,通常每個成員每天至少集成一次,也就意味着每天可能會發生多次集成。每次集成都通過自動化的構建(包括編譯,發布,自動化測試)來驗證,從而盡快地發現集成錯誤。許多團隊發現這個過程可以大大減少集成的問題,讓團隊能夠更快的開發內聚的軟件。
為什么寫這篇文章:筆者在學習jenkins的過程中遇到了很多坑,且學習過程中好多搜到的資料過於零散,導致學習進度緩慢,想通過這篇文章,能讓大家在學習的過程中少走彎路。雖然我預計這篇文章是做不到的,但是能夠幫助到幾位也是好的,以此為望,大家共勉。
一、Jenkins安裝
系統&安裝方式 |
直接使用WAR文 |
安裝包安裝 |
將WAR文件放到WEB容器 |
Windows系統 |
難度:低 |
難度:中 |
難度:高 |
Linux系統 |
難度:低 |
難度:中 |
難度:高 |
Mac系統 |
難度:低 |
難度:中 |
難度:高 |
筆者推薦直接使用WAR文件,越簡單的東西越適合初學者。且筆者在使用安裝包安裝中,出現過一次無法獲取插件列表的情況。
Windows下安裝:
系統版本 |
JDK版本 |
Jenkins版本 |
Windows10 |
JDK8 |
Jenkins1.651 |
- 安裝JDK:(windows下jdk的安裝及環境變量配置百度一下)
-
下載安裝最新版本Jenkins:
登陸 http://jenkins-ci.org/ 下載windows版本
下載的壓縮包內含一個.msi程序,直接安裝
-
訪問Jenkins:直接訪問Jenkins http://本機IP :8080 (8080為jenkins默認端口號)
Linux Ubuntu下安裝:
系統版本 |
JDK版本 |
Jenkins版本 |
Ubuntu 14.04LTS 桌面版 |
Openjdk-7-jdk |
Jenkins1.651 |
Ubuntu安裝包安裝:
-
安裝open-JDK:
sudo apt-get install openjdk-7-jdk
-
安裝Jenkins:
wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update -y
sudo apt-get install jenkins -y -
安裝位置:
安裝目錄:/var/lib/jenkins
日志目錄:/var/log/jenkins/jenkins.log -
啟動停止服務:
sudo /etc/init.d/jenkins start
sudo /etc/init.d/jenkins stop -
訪問jenkins:
http://本機IP:8080/
直接使用WAR文件:
- 安裝open-JDK(同上文)
-
下載war文件
-
將對應war文件傳入linux服務器(以下簡單介紹幾種傳入方式,僅僅提供思路以做百度谷歌之用)
- 架設FTP服務器
- Winscp工具傳入
- 虛擬機可用虛擬機增強工具拖入或啟動共享文件夾
- U盤等硬件接入
-
使用war文件開啟服務
Java -jar /home/jenkins.war(wan文件路徑) --Port=8080(端口)
-
訪問jenkins
http://本機IP:8080/
-
將服務加入開機啟動
cd /etc/init.d //切換目錄
vi jenkins.sh //編寫shell腳本
插入java -jar /home/jenkins.war(wan文件路徑) --Port=8080(端口)& //后台運行
chmod 755 jenkins.sh //修改shell腳本權限
update-rc.d test defaults 95(啟動順序編號) //加入啟動項
update-rc.d -f jenkins.sh remove //刪除啟動項(需在/etc/init.d目錄下執行)
-
Jenkins的安裝目錄:
/root/.jenkins/
-
訪問jenkins:
http://本機IP:8080/jenkins/
TomCat+Jenkins:
- 下載安裝jdk(同上文)
- 下載WAR文件(同上文)
-
下載安裝tomcat
-
下載tomcat
- 將tomcat安裝包傳入服務器
-
解壓安裝包
tar -cvzf apache-tomcat-8.0.12.tar.gz
-
復制解壓文件到你想要的安裝路徑
cp -r apache-tomcat-8.0.12 /目標路徑
-
進入安裝路徑,以 /opt/tomcat/ 為例
cd /opt/tomcat/
-
編輯tomcat 啟動腳本,加入環境變量
vim ./bin/startup.sh
加入一下內容,路徑改為你自己的環境變量路徑
JAVA_HOME=/usr/lib/jvm/jdk1.8.0_31
JRE_HOME=${JAVA_HOME}/jre
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
TOMCAT_HOME=/opt/apache-tomcat-8.0.17
ps:需要放在exec "$PRGDIR"/"$EXECUTABLE" start "$@"這一行上邊
-
編輯 catalina.sh 文件,加入環境變量,否則 jenkins 會報找不到 Ant 錯誤
#See the license for the……
JAVA_HOME=/usr/lib/jvm/jdk1.8.0_31
Export JENKINS_HOME="/root/.jenkins"
-
- 將WAR文件放入tomcat安裝路徑/webapps/目錄下
-
啟動 & 關閉tomcat
./bin/startup.sh
./bin/shutdown.sh
-
Jenkins的安裝目錄:
/root/.jenkins/
二、Jenkins配置及插件安裝使用簡介
HTML Publisher Plugin 插件在新的Jenkins版本中會導致打開的網頁中無法加載CSS以及無法點擊按鈕的情況,由於CSP導致,可在Jenkins控制台中執行:System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")以解決此問題。其他由於CSP原因導致的html插件也可用此方法解決。
插件安裝:
|
|
|
在線安裝:
-
進入系統管理
-
進入插件管理
-
切換可選插件分頁
-
選擇插件,直接安裝
-
若遇到可選插件為空的情況
- 切換到高級界面
- 點擊立即獲取按鈕
- 若報錯,建議直接重新安裝jenkins(查了一天解決辦法,放棄了,直接重裝好了)
離線安裝:
-
進入插件管理,高級分頁
-
上傳插件
- 上傳成功后會自動安裝
- 若安裝失敗請去對應插件頁面檢查是否安裝對應依賴
賬戶安全配置:
PS:
如果用戶權限配置錯誤導致無法修改,修改服務器jenkins安裝目錄下config.xml文件,重啟jenkins服務即可。
-
進入系統管理—Configure Global Security
-
選擇Jenkins 專用用戶數據庫,允許用戶注冊,保存
-
注冊用戶
- 再次進入Configure Global Security
-
啟動安全矩陣,添加用戶,添加權限,保存
三、Jenkins的環境變量說明
-
環境變量列表:
- BUILD_NUMBER,唯一標識一次build,例如23;
- BUILD_ID,基本上等同於BUILD_NUMBER,但是是字符串,例如2011-11-15_16-06-21;當前只有ID
- JOB_NAME, job的名字,例如JavaoWorld;
- BUILD_TAG,作用同BUILD_ID,BUILD_NUMBER,用來全局地唯一標識一此build,例如jenkins-JavaHelloWorld-23;
- EXECUTOR_NUMBER, 例如0;
- NODE_NAME,slave的名字,例如MyServer01;
- NODE_LABELS,slave的label,標識slave的用處,例如JavaHelloWorldMyServer01;
- JAVA_HOME, java的home目錄,例如C:\Program Files (x86)\Java\jdk1.7.0_01;
- WORKSPACE,job的當前工作目錄,例如c:\jenkins\workspace\JavaHelloWorld;
- HUDSON_URL = JENKINS_URL, jenkins的url,例如http://localhost:8000/;
- BUILD_URL,build的url 例如http://localhost:8000/job/JavaHelloWorld/23/;
- JOB_URL, job的url,例如http://localhost:8000/job/JavaHelloWorld/;
- SVN_REVISION,svn 的revison, 例如4;
-
需要特殊注意的是系統管理,系統設置,高級中3個變量的引用(尤其注意重裝jenkins后一定要檢查是否與之前Jenkins的一致,哪怕是同一個版本甚至於同一個WAR文件)
四、Jenkins使用
-
創建項目,輸入項目名稱,選擇項目類型
-
根據項目情況輸入項目信息
-
構建
-
查看構建結果(藍點為成功,紅點為失敗,Console Output選項為查看構建的log)
五、構建
-
構建觸發器
- 觸發遠程構建(腳本構建)
- Build after other projects are built(在其他構建完成后構建本項目)
- Build periodically(定期構建)
-
Poll SCM(檢查代碼庫)
-
構建腳本
- Execute Windows batch command:添加Dos腳本構建步驟
- Execute shell:添加shell構建步驟
- Invoke Ant:添加Ant構建步驟
- Invoke top—level Maven targets:添加Marven構建步驟
-
構建后操作
- E-mail Notification 增加發送郵件配置
- Publish Html report (HTML Publisher plugin插件),增加查看Html結果配置(絕對路徑,相對路徑以workspace開始)
六、Jenkins在跨平台使用注意事項
- 路徑:
Jenkins路徑格式:
Windows服務器下也支持"/""\"並存模式,推薦使用"/",方便跨平台使用。
PS:看資料是可以,未嘗試