Jenkins搭建和使用

Jenkins

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 

相關文章
相關標籤/搜索