天天看點

Jenkins環境搭建總結

    Jenkins是一個用Java編寫的開源的持續內建(CI)工具,可持續、自動地建構/測試軟體項目,監控一些定時執行的任務。具有開源,支援多平台和插件擴充,安裝簡單,界面化管理等特點。

一、Jenkins安裝

1.安裝OpenJDK

<code>[root@localhost ~]</code><code>#yum install java-1.7.0-openjdk</code>

<code>[root@localhost ~]</code><code>#java -version</code>

<code>java version</code><code>"1.7.0_131"</code>

<code>OpenJDK RuntimeEnvironment (rhel-2.6.9.0.el6_8-x86_64 u131-b00)</code>

<code>OpenJDK 64-BitServer VM (build 24.131-b00, mixed mode)</code>

2.yum安裝Jenkins stable版本

<code>[root@localhost ~]</code><code># wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo</code>

<code>[root@localhost ~]</code><code># rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key</code>

<code>[root@localhost ~]</code><code># yum install jenkins</code>

安裝好後,jenkins的主目錄位于/var/lib/jenkins,這也是jenkins使用者的家目錄。

jenkins主程式:/usr/lib/jenkins/jenkins.war

jenkins配置檔案:/etc/sysconfig/jenkins

jenkins啟動腳本:/etc/init.d/jenkins

jenkins日志目錄:/var/log/jenkins

3.啟動Jenkins

<code>[root@localhost ~]</code><code># service jenkins start</code>

<code>[root@localhost ~]</code><code># chkconfig jenkins on</code>

4.通路Jenkins,進行初始化設定

http://jenkins_server_ip:8080

二、Jenkins插件安裝示範

1.線上安裝語言插件

進入Manage Jenkins-&gt;Manage Plugins-&gt;Available,找到"Locale plugin"并安裝,安裝過程中會自動處理好插件的依賴。

線上安裝插件可能由于網絡原因安裝失敗,記下安裝失敗的插件和安裝順序,然後使用下面的方法離線安裝。

2.離線安裝插件

通路網址https://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/,搜尋上一步安裝失敗的那些插件,下載下傳下來。

進入Manage Jenkins-&gt;Manage Plugins-&gt;Advanced,選擇插件檔案并上傳。

<a href="https://s4.51cto.com/wyfs02/M02/92/44/wKiom1j9vvuAOReqAAAfUbLgMP8275.png-wh_500x0-wm_3-wmp_4-s_3856725067.png" target="_blank"></a>

注意:要按照依賴順序一個一個安裝插件。

安裝好後重新開機Jenkins(可以通過通路http://jenkins_server_ip:8080/restart重新開機)。

3.設定語言為中文

進入Manage Jenkins-&gt;Configure System,在"Default Language"位置輸入zh_CN,儲存立即生效。

<a href="https://s5.51cto.com/wyfs02/M02/92/43/wKioL1j9vx_y9-yyAAAUJIhHTyg159.png-wh_500x0-wm_3-wmp_4-s_2820781965.png" target="_blank"></a>

三、安裝SVN插件

1)進入"系統管理"-&gt;"插件管理"-&gt;"可選插件",找到"Subversion Plug-in"并安裝。

2)SVN插件安裝好後,我們建立一個新項目。

在項目配置的"源碼管理"部分,我們可以對svn倉庫進行配置了。

<a href="https://s2.51cto.com/wyfs02/M01/92/44/wKiom1j9vzeRXtjMAABGWB2_XRA912.png-wh_500x0-wm_3-wmp_4-s_1561626265.png" target="_blank"></a>

四、安裝SSH插件

1)進入"系統管理"-&gt;"插件管理"-&gt;"可選插件",安裝"Publish Over SSH"插件。

2)配置SSH免密碼登入到遠端伺服器

<code>usermod</code> <code>-s </code><code>/bin/bash</code> <code>jenkins</code>

<code>su</code> <code>- jenkins</code>

<code>ssh</code><code>-keygen -t rsa</code>

将公鑰推送到遠端主機:

<code>ssh</code><code>-copy-</code><code>id</code> <code>-i ~/.</code><code>ssh</code><code>/id_rsa</code><code>.pub </code><code>'-p 10022 [email protected]'</code>

3)進入"系統管理"-&gt;"系統設定",找到Publish over SSH配置段。

<a href="https://s5.51cto.com/wyfs02/M01/92/43/wKioL1j9v1GwmzX2AAB0mqgHA3M013.png-wh_500x0-wm_3-wmp_4-s_1196012612.png" target="_blank"></a>

Jenkins SSH Key(插件的全局配置)

Passphrase:密碼(key的密碼,一般我們不會設定)

Path to key:key檔案(私鑰)的路徑

Key:将私鑰複制到這個框中(與Path to key二選一)

Disable exec:禁止遠端運作指令

添加SSH遠端主機

SSH Server Name:自定義遠端主機的名字

Hostname:ssh遠端連接配接的ip位址

Username:使用者名

Remote Directory:遠端目錄

Use password authentication, or use a different key:選中展開就可以配置新的私鑰,不使用全局配置。

Port:SSH端口

Timeout (ms):逾時時間(毫秒)

Disable exec:禁止運作指令(隻對目前配置的ssh主機生效)

Test Configuration:測試連接配接,連接配接成功會傳回Success

五、項目配置

1.建立一個項目

建立一個項目,輸入項目名稱,選擇“建構一個自由風格的軟體項目”。

<a href="https://s3.51cto.com/wyfs02/M01/92/43/wKioL1j9v2XgmPEEAACe9EGN0jM066.png-wh_500x0-wm_3-wmp_4-s_1183149043.png" target="_blank"></a>

2.建構觸發器

<a href="https://s3.51cto.com/wyfs02/M02/92/43/wKioL1j9v6Lxq6JGAAAbY6uqRE8175.png-wh_500x0-wm_3-wmp_4-s_321491505.png" target="_blank"></a>

觸發遠端建構

<a href="https://s4.51cto.com/wyfs02/M01/92/44/wKiom1j9v9bTYiD2AAA18u4HnRk310.png" target="_blank"></a>

遠端建構URL:

JENKINS_URL/job/JOB_NAME/build?token=TOKEN_NAME

我們可以在URL末尾加上&amp;cause=Cause+Text描述建構原因。

例如:

http://192.168.1.203:8080/job/testjob1/build?token=testjob1token

腳本調用方法:

curl -v -u 使用者名:登入密碼 遠端建構URL

<a href="https://s1.51cto.com/wyfs02/M02/92/44/wKiom1j9v-KTWpQOAACDkr3ufWw377.png-wh_500x0-wm_3-wmp_4-s_4262964515.png" target="_blank"></a>

Build after other projects are built

指定的項目完成建構後,才觸發此項目的建構。

Build periodically

按指定的時間頻率對項目進行建構。

Poll SCM

按指定的時間頻率檢查源代碼倉庫的變化,如發現變化則執行建構。

3.建構環境

<a href="https://s2.51cto.com/wyfs02/M00/92/44/wKiom1j9v-6Tq2kbAAAZ6-jzQL8859.png-wh_500x0-wm_3-wmp_4-s_10400934.png" target="_blank"></a>

Send files or execute commands over SSH before the build starts

建構開始前通過ssh給遠端主機發送檔案或者執行指令。

Send files or execute commands over SSH after the build runs

建構結束後通過ssh給遠端主機發送檔案或者執行指令。

這兩個選項是在安裝了“Publish Over SSH”插件後出現的,比較實用。配置介紹:

<a href="https://s2.51cto.com/wyfs02/M00/92/43/wKioL1j9wAKyKNVIAACOLh1dXuc991.png-wh_500x0-wm_3-wmp_4-s_1102208361.png" target="_blank"></a>

Name:在系統設定裡配置的SSH遠端主機的名字

Source files:上傳的檔案或目錄(相對于項目工作區的路徑,非絕對路徑。可以填寫多個,預設用逗号分隔)

Remove prefix:移除Source files的目錄字首

Remote directory:遠端主機的上傳目錄(如果目錄不存在會自動建立)

Exec command:要遠端執行的指令

Flatten files:隻上傳檔案,不建立目錄(除了遠端目錄)

4.建構步驟

<a href="https://s4.51cto.com/wyfs02/M02/92/43/wKioL1j9wCnTPU77AAAhH5aSBeQ878.png-wh_500x0-wm_3-wmp_4-s_138782683.png" target="_blank"></a>

Execute Windows batch command

執行Windows批處理腳本(Jenkins安裝在Windows系統中)。

Execute shell

執行Linux shell腳本(Jenkins安裝在Linux系統中)。

Invoke Ant

JenKins與Ant內建實作項目的自動化建構部署,适用于Ant作為建構工具的項目。

Invoke top-level Maven targets

JenKins與Maven內建實作項目的自動化建構部署,适用于Maven作為建構工具的項目。

Send files or execute commands over SSH

通過ssh給遠端主機發送檔案或者執行指令。“Publish Over SSH”插件的功能。

5.參數化建構

通過參數化建構功能,我們可以為建構程式傳遞參數,靈活控制建構流程。

在項目配置裡點選“參數化建構過程”,然後選擇“添加參數”,jenkins提供了多種參數類型:

<a href="https://s2.51cto.com/wyfs02/M02/92/44/wKiom1j9v3LBaZocAAB3KSKd6N8738.png-wh_500x0-wm_3-wmp_4-s_2756567404.png" target="_blank"></a>

舉個例子,我們添加兩個參數:

參數level是Choice類型,可選值1和2,預設值是1。

<a href="https://s5.51cto.com/wyfs02/M02/92/43/wKioL1j9v3_ihbAKAAA4necoiKs349.png-wh_500x0-wm_3-wmp_4-s_2342167380.png" target="_blank"></a>

參數text是String類型,預設值是“hello world”。

<a href="https://s5.51cto.com/wyfs02/M01/92/44/wKiom1j9v4mjEcW-AAAW9MFbmFs506.png-wh_500x0-wm_3-wmp_4-s_1403500464.png" target="_blank"></a>

參數設定好後,我們可以在建構腳本裡引用這些變量。

Windows平台引用方法:%var_name%

Linux平台引用方法:${var_name}

配置完整個項目後,我們手動運作建構:

在項目面闆的左側選擇“Build with Parameters”,先對參數值進行修改,然後點選“開始建構”。

<a href="https://s1.51cto.com/wyfs02/M01/92/43/wKioL1j9v5WwdRzQAAB4TGOYSDo828.png-wh_500x0-wm_3-wmp_4-s_3737032902.png" target="_blank"></a>

參數化遠端建構URL(通過通路url觸發建構):

JENKINS_URL/job/JOB_NAME/buildWithParameters?token=TOKEN_NAME&amp;PARM1=VALUE1&amp;PARM2=VALUE2…

http://192.168.1.203:8080/job/testjob1/buildWithParameters?token=testjob1token&amp;level=2&amp;text=hello+world

本文轉自 張斌_青島 51CTO部落格,原文連結:http://blog.51cto.com/qicheng0211/1918912

繼續閱讀