Jenkins是一個普遍用於持續構建的可視化web工具,就是各類項目的的「自動化」編譯、打包、分發部署等等。Jenkins能夠支持多種語言(好比:java、c#、php等等),也兼容ant、maven、gradle等多種第三方構建工具,同時跟git、svn無縫集成,也支持直接與源代碼託管網站(好比github、bitbucket)直接集成。 php
使用Centos 7系統,在安裝Jenkins以前,須要安裝相應的軟件。java
1. 安裝JDKlinux
tar -zxf jdk-8u91-linux-x64.tar.gz -C /home/mmtrix/local/ ln -s jdk1.8.0_91 java
2. 安裝maven(其它的構建工具也能夠,取決於項目使用什麼)git
tar -zxf apache-maven-3.0.5-bin.zip -C /home/mmtrix/local/ ln -s apache-maven-3.0.5 maven
3. 安裝antgithub
tar -zxf apache-ant-1.9.7-bin.tar.gz -C /home/mmtrix/local/ ln -s apache-ant-1.9.7 ant
4. 安裝git(其它的代碼管理工具也能夠,取決於項目使用什麼)web
5. 安裝啓動Jenkins正則表達式
java -jar jenkins.war
在啓動過程當中,會自動將war包解壓到~/.jenkins目錄下,並生成一些目錄和配置文件。啓動參數也可自行調整。shell
啓動完成後,打開瀏覽器http://localhost:8080/ (若是不是安裝在本機,應該localhost換成服務器對應的ip)
首次啓動會提示不少插件已通過時,須要更新,建議升級到最新版本。 apache
同時建議安裝如下插件,方便支持git項目以及向遠程機器上傳文件及執行命令。c#
插件升級以後重啓jenkins以便其生效。
默認狀況下,jenkins容許匿名用戶作任何事情,這意味着誰均可以使用jenkins進行發佈,這顯然不夠安全,jenkins支持多種安全認證機制,下面演示最傳統的用戶名/密碼模式如何設置:
進入Configure Global Security界面:
參考上圖,採用jenkins內置的用戶名、密碼認證機制,同時容許用戶註冊,匿名用戶擁有管理權(首次配置,建議運行匿名用戶有管理權限,以免操做錯誤後,沒法正常進入jenkins管理界面,等其餘用戶權限設置好以後,再去掉用戶的管理權)
保存好以後,jenkins頁面右上角有一個sign up註冊連接,點擊註冊用戶:
註冊好以後再進入安全設置界面,看到用戶列表多了一個mmtrix用戶,並擁有管理權限,使用mmtrix用戶登陸,成功以後去掉匿名用戶管理權限,通常也去掉用戶註冊的勾選(實際應用中,通常都是提早建好全部用戶名),保存好,在訪問jenkins:
這樣就只有登陸用戶才能使用了。
在正式部署項目前,還有幾個關鍵的參數須要設置。
先進入系統設置界面
首先是jdk
git
ant
maven
若是部署過程當中,還須要運行shell腳本,以及經過scp向遠程機器上傳文件,則須要配置下面的:
SCP site解釋:
Hostname: 遠程服務器的主機名
Port: SSH使用端口號
Root Repository Path: SCP拷貝時路徑的根目錄
User Name: 用戶名 \ Password、PassPhrase:密碼
Keyfile:本地ssh密鑰的路徑
還有一個強大的publish over ssh,不只能夠向遠程服務器上傳文件,還能執行遠程服務器上的shell腳本
跟SCP的參數設置類似,不過多了一個Test Configuration的按鈕,參數配置正確,點擊該按鈕,會嘗試鏈接遠程服務器,成功會顯示success。
以在github上的一個測試項目maven-test做爲演示
點擊OK以後,最上面部分,除了Project name,其餘不用填寫
源代碼管理部分,選擇的是一個git項目,因此選擇Git,Repository URL填寫項目的git地址,github須要密碼才能訪問,因此Credentials這裏要選擇相應的用戶名、密碼,git獲取源代碼的分支名稱,通常爲master,也能夠改爲想要的分支。
Credentials部分下拉框首次進來是空的,點擊右側Add,進行添加
Build部分,本項目是一個maven項目,選擇Invoke top-level Maven targets
保存,建立完成,能夠測試一下。
Build success。
不少項目須要將編譯成功的j文件發送到遠程服務器上,利用scp插件,在Add post-build Action中選擇Publis artifacts to SCP Repository
參考下面的參數填寫
Source:分發的文件
Destination:目的路徑,相對前面配置的遠程服務器的根目錄
配置好了以後,再次build就能夠了
實現不一樣用戶顯示對應視圖views中不一樣的jobs,使用Role-based Authorization Strategy插件。
1.安裝Role-based Authorization Strategy
安裝成功以後,重啓jenkins使其生效。
2.「Manage Jenkins」 → 「Configure Global Security」 → 「Role-Based Strategy」
3.管理分組
「Manage Jenkins」 → 「Manage and Assign Roles」
點擊「Manage Roles」進入界面
建立兩個全局的用戶組:job-read和job-create
job-read加Overall和Job的Read權限,job-create只加Job的create權限
建立兩個項目用戶組:deploy和QA
project roles建立的時候Pattern正則表達式與腳本里不同,好比過濾test開頭的項目,要寫成test.*而不是test*
點擊「Create User」,而後建立用戶,一共有3個用戶:mmtrix、liufei、test
「Manage and Assign Roles」→「Assign Roles」設置
global roles,給mmtrix分配管理員的組,匿名用戶分配到job_read組和job_create組
project roles,給liufei分配到deploy組,將test分配到QA組
退出用戶登陸,匿名用戶能夠查看現有的Job和新建Job,可是沒辦法build
採用liufei登陸,在All view中能夠查看全部的Job,可是能build只能符合maven開頭的Job
能夠編輯「My views」,讓其顯示特定的Jobs
點擊「+」,建立想要的view
Include a global view:顯示全部的內容
List view:能夠經過相似正則表達式配置本身想要顯示的Jobs
My view:自動顯示用戶有權限訪問的Jobs
這裏選擇My view