關(guān)鍵詞:
Jenkinssvn自動化持續(xù)集成
摘要:
Jenkins页藻,之前叫做Hudson旧乞,是基于Java開發(fā)的一種持續(xù)集成工具吊洼,用于監(jiān)控秩序重復(fù)的工作,包括:
1灌危、持續(xù)的軟件版本發(fā)布/測試項目康二。
2、監(jiān)控外部調(diào)用執(zhí)行的工作勇蝙。
案例描述
針對我們公司項目是迭代開發(fā)模式沫勿,所以有引入自動化的需求,對于自動化的管理味混,用持續(xù)集成工具再好不過了产雹,先分享出jenkins的使用方法和大家一起學(xué)習(xí)。
引入jenkins的優(yōu)點:
開源免費翁锡;
跨平臺蔓挖,支持所有的平臺;
master/slave支持分布式的build馆衔;
web形式的可視化的管理頁面瘟判;
安裝配置超級簡單;
tips及時快速的幫助角溃;
已有的1000多個插件拷获;
可管理性強。
2.1jenkins安裝(ubuntu)
Jenkins支持的系統(tǒng)有很多:
Windows减细、Ubuntu/Debian匆瓜、Red Hat/Fedora/CentOS、Mac OS X、openSUSE驮吱、FreeBSD茧妒、OpenBSD、Solaris/OpenIndiana糠馆、Gentoo嘶伟。
介紹下基于Debian的Ubuntu系統(tǒng)安裝方法:
‘添加軟件包的庫用于安裝和更新jenkins怎憋,需要下載jenkins-ci.org.key文件又碌,把下載的key添加到本地trusted數(shù)據(jù)庫中。
wget -q -O -http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
‘將echo deb
http://pkg.jenkins-ci.org/debian binary/添加到/etc/apt/sources.list.d/jenkins.list中绊袋。
sudo sh -c 'echodeb http://pkg.jenkins-ci.org/debian binary/ >/etc/apt/sources.list.d/jenkins.list'
‘更新源
sudo apt-getupdate
‘安裝jenkins
sudo apt-getinstall jenkins
安裝好后使用firefox打開“http://hostname:8080”訪問安裝好的jenkins毕匀。
2.2jenkins使用
2.2.1構(gòu)建任務(wù):
需求:構(gòu)建從svn服務(wù)器中定時更新selenium+jruby項目,并執(zhí)行自動執(zhí)行項目工程癌别,返回測試結(jié)果皂岔。
在首頁上點擊“新Job”
輸入“任務(wù)名稱”如:test
以下5個選項可以根據(jù)項目需要選擇,如“構(gòu)建一個自由風(fēng)格軟件項目”展姐,然后點擊OK躁垛!
配置SVN
1.輸入SVN的URL
2.首次連接會失敗這時你需要點擊enter_credential,進入
配置完成后并保存圾笨,構(gòu)建任務(wù)將不會有無法連接SVN的提示教馆。
3.check-out
Strategy選擇svn update
jenkins的構(gòu)建觸發(fā)中Poll SCM和Build periodically的區(qū)別:
Poll SCM:定時檢查源碼變更(根據(jù)SCM軟件的版本號),如果有更新就checkout最新code下來擂达,然后執(zhí)行構(gòu)建動作土铺。如:
*/5 * * * *(每5分鐘檢查一次源碼變化)
Build periodically:周期進行項目構(gòu)建(它不關(guān)心源碼是否發(fā)生變化),如:
0 2 * * *(每天2:00必須build一次源碼)
PS:點擊日程表后面的問號板鬓,里面會介紹每個星號代表的參數(shù)以及使用方法悲敷。
設(shè)置“構(gòu)建”中的構(gòu)建步驟:
增加一條基于shell的命令,選擇Execute shell
在Command中輸入:
pwd------------------------(查看當(dāng)前運行路勁)
ruby test.rb-----------------(test.rb是SVN服務(wù)器上checkout下來的文件)
最后保存這個構(gòu)建:
保存好的構(gòu)建就會定時運行項目了俭令。
運行后我們可以查看運行日志:
查看項目趨勢圖:
2.2.2Jenkins的Slave配置
構(gòu)建對個slave服務(wù)器后德,用于實現(xiàn)分布式管理:
基于windows的slave配置
進入http://hostname:8080/computer/下(也可以通過主界面的“系統(tǒng)管理”->“管理節(jié)點”進入)“新建節(jié)點”
配置Name如:windows server(沒多大要求)
Of executors推薦設(shè)置為1
remote FS root指向需要關(guān)聯(lián)到的目標(biāo)windows的文件路徑(必須是存在的)。
用法選擇“只允許運行綁定到這臺機器的Job”
Launch method“Launch slave agents via Java Web
Start”
Availability選擇“Keep this slave on-line as much as possible”
點擊保存抄腔,重新進入到http://hostname:8080/computer/點擊剛剛創(chuàng)建的windows server進入到
點擊黃色按鍵瓢湃,直到彈出
表示成功
此時系統(tǒng)的狀態(tài)也被顯示了出來。
基于linux的slave配置
進入http://hostname:8080/computer/下(也可以通過主界面的“系統(tǒng)管理”->“管理節(jié)點”進入)“新建節(jié)點”
配置Name如:linux server(沒多大要求)
Of executors推薦設(shè)置為1
remote FS root指向需要關(guān)聯(lián)到的目標(biāo)windows的文件路徑(必須是存在的)
用法選擇“只允許運行綁定到這臺機器的Job”
Launch method選擇“Launch slave agent in Unix
machines via SSH”
Host填寫目標(biāo)地址
Credentials首次設(shè)置此項時妓柜,點擊右邊的問號按鈕
會有提示內(nèi)容出現(xiàn)箱季,再點擊提示內(nèi)容中的“add some”頁面將會跳轉(zhuǎn)到
我們使用的是SSH
username with password的證書。
填寫該linux系統(tǒng)的用戶名和密碼(此用戶名的權(quán)限必須具備remote FS root指向的文件的讀寫和執(zhí)行的權(quán)限)保存
Availability選擇“Keep this slave on-line as much as possible”
點擊保存棍掐。
然后lunch slave藏雏,使得master和slave通過ssh成功連接。其實launch的時候jenkins自動地從http://yourserver:port/jnlpJars/slave.jar拷貝slave.jar到slave,然后運行通過命令java -jar slave.jar來運行slave掘殴。
以下為成功連接后的界面:
在jenkins上使用slave赚瘦,只需要在slave的配置上將labels的名稱寫到j(luò)obs的Restrict where this project can be
run中即可。
默認的Jenkins不包含任何的安全檢查奏寨,任何人可以修改Jenkins設(shè)置起意,job和啟動build等。對于多部門協(xié)調(diào)工作的公司顯然不合適病瞳,沒有任何安全檢查會給我們的工作帶來很多問題揽咕。
我們可以通過以下2方面來增強Jenkins的安全性:
進入http://hostname:8080/manage
點擊Configure
Global Security,進入配置界面
勾選“啟用安全”套菜,詳細配置如下:
首次設(shè)置一定要“允許用戶注冊”和“任何用戶可以做任何事(沒有任何限制)”
設(shè)置好之后亲善,重新進入http://hostname:8080,通過界面注冊用戶(需要幾個注冊幾個)
登錄后重新進入Configure
Global Security逗柴,進入配置界面
去除“允許用戶注冊”阻止任何用戶注冊
授權(quán)策略選擇“安全矩陣”蛹头,便可以對不同的用戶設(shè)置不同的權(quán)限了。
以上介紹了一些常用的功能戏溺,還有jenkins支持的眾多插件沒介紹渣蜗,以及更多的運用場景沒介紹,希望有興趣的同學(xué)可以自行研究旷祸。