Jenkins環境搭建及使用

關鍵詞:

Jenkinssvn自動化持續集成

摘要:

Jenkins,之前叫做Hudson,是基于Java開發的一種持續集成工具,用于監控秩序重復的工作,包括:

1、持續的軟件版本發布/測試項目。

2、監控外部調用執行的工作。

案例描述

針對我們公司項目是迭代開發模式,所以有引入自動化的需求,對于自動化的管理,用持續集成工具再好不過了,先分享出jenkins的使用方法和大家一起學習。

1案例分析

引入jenkins的優點:

開源免費;

跨平臺,支持所有的平臺;

master/slave支持分布式的build;

web形式的可視化的管理頁面;

安裝配置超級簡單;

tips及時快速的幫助;

已有的1000多個插件;

可管理性強。

2解決過程

2.1jenkins安裝(ubuntu)

Jenkins支持的系統有很多:

Windows、Ubuntu/Debian、Red Hat/Fedora/CentOS、Mac OS X、openSUSE、FreeBSD、OpenBSD、Solaris/OpenIndiana、Gentoo。

介紹下基于Debian的Ubuntu系統安裝方法:

‘添加軟件包的庫用于安裝和更新jenkins,需要下載jenkins-ci.org.key文件,把下載的key添加到本地trusted數據庫中。

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。

jenkins

2.2jenkins使用

2.2.1構建任務:

需求:構建從svn服務器中定時更新selenium+jruby項目,并執行自動執行項目工程,返回測試結果。

在首頁上點擊“新Job”

新建job

輸入“任務名稱”如:test

以下5個選項可以根據項目需要選擇,如“構建一個自由風格軟件項目”,然后點擊OK!

配置SVN

配置SVN

1.輸入SVN的URL

2.首次連接會失敗這時你需要點擊enter_credential,進入

svn認證

配置完成后并保存,構建任務將不會有無法連接SVN的提示。

3.check-out

Strategy選擇svn update

構建觸發器


構建觸發器

jenkins的構建觸發中Poll SCM和Build periodically的區別

Poll SCM:定時檢查源碼變更(根據SCM軟件的版本號),如果有更新就checkout最新code下來,然后執行構建動作。如:

*/5 * * * *(每5分鐘檢查一次源碼變化)

Build periodically:周期進行項目構建(它不關心源碼是否發生變化),如:

0 2 * * *(每天2:00必須build一次源碼)

PS:點擊日程表后面的問號,里面會介紹每個星號代表的參數以及使用方法。

設置“構建”中的構建步驟:

構建步驟

增加一條基于shell的命令,選擇Execute shell

在Command中輸入:

pwd------------------------(查看當前運行路勁)

ruby test.rb-----------------(test.rb是SVN服務器上checkout下來的文件)

最后保存這個構建:

保存好的構建就會定時運行項目了。

運行后我們可以查看運行日志:

運行日志

查看項目趨勢圖:


項目趨勢圖

2.2.2Jenkins的Slave配置

構建對個slave服務器,用于實現分布式管理:

基于windows的slave配置

進入http://hostname:8080/computer/下(也可以通過主界面的“系統管理”->“管理節點”進入)“新建節點”

新建節點

配置Name如:windows server(沒多大要求)

Of executors推薦設置為1

remote FS root指向需要關聯到的目標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/點擊剛剛創建的windows server進入到

launch

點擊黃色按鍵,直到彈出

connectd

表示成功

成功后的圖

此時系統的狀態也被顯示了出來。

基于linux的slave配置

進入http://hostname:8080/computer/下(也可以通過主界面的“系統管理”->“管理節點”進入)“新建節點”

新建節點

配置Name如:linux server(沒多大要求)

Of executors推薦設置為1

remote FS root指向需要關聯到的目標windows的文件路徑(必須是存在的)

用法選擇“只允許運行綁定到這臺機器的Job”

Launch method選擇“Launch slave agent in Unix

machines via SSH”

Host填寫目標地址

Credentials首次設置此項時,點擊右邊的問號按鈕

add some

會有提示內容出現,再點擊提示內容中的“add some”頁面將會跳轉到

manage credentials

我們使用的是SSH

username with password的證書。

填寫該linux系統的用戶名和密碼(此用戶名的權限必須具備remote FS root指向的文件的讀寫和執行的權限)保存

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。

以下為成功連接后的界面:

gui

在jenkins上使用slave,只需要在slave的配置上將labels的名稱寫到jobs的Restrict where this project can be

run中即可。

2.2.3Jenkins的授權和訪問控制

默認的Jenkins不包含任何的安全檢查,任何人可以修改Jenkins設置,job和啟動build等。對于多部門協調工作的公司顯然不合適,沒有任何安全檢查會給我們的工作帶來很多問題。

我們可以通過以下2方面來增強Jenkins的安全性:

進入http://hostname:8080/manage

點擊Configure

Global Security,進入配置界面

配置頁

勾選“啟用安全”,詳細配置如下:

詳細配置

首次設置一定要“允許用戶注冊”和“任何用戶可以做任何事(沒有任何限制)”

設置好之后,重新進入http://hostname:8080,通過界面注冊用戶(需要幾個注冊幾個)

登錄后重新進入Configure

Global Security,進入配置界面

全局配置

去除“允許用戶注冊”阻止任何用戶注冊

授權策略選擇“安全矩陣”,便可以對不同的用戶設置不同的權限了。

3? 解決結果

以上介紹了一些常用的功能,還有jenkins支持的眾多插件沒介紹,以及更多的運用場景沒介紹,希望有興趣的同學可以自行研究。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容