前言
本篇文章主要是講怎么在Linux環(huán)境下下載Jenkins應用、常見的配置以及可能會遇到的小坑,話不多說,看正文。
想要了解更多Jenkins系列的文章,可以參考如下鏈接:
Jenkins系列(二)——觸發(fā)點和構建環(huán)境的介紹
Jenkins系列(三)——關于通用配置(General模塊)的介紹
一、Jenkins使用前提
需要本地有JDK1.8以上的java版本,測試服務器上是否已經安裝了Java,可以用下面這條命令
java -version
需要注意的是,如果你下載的jenkins版本是1.612以下的,那么JDK1.7版本的應該也是可以的。
二、Jenkins的安裝
(1)下載Jenkins
Jenkins的安裝其實可以直接去官方網站就可以看到官方推薦的安裝方式了:
https://pkg.jenkins.io/redhat-stable/

也可以根據我下面的命令來進行安裝:
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.reposudo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install
當然了,除了命令行操作下載外,直接在官網上手動下載對應操作系統(tǒng)的軟件包也是推薦的選擇 官網下載地址
(2)修改Jenkins端口
跟著上面的步驟安裝成功后我們再來修改一下jenkins的啟動端口,由于jenkins的默認端口是8080,可能會跟其他應用沖突,而且暴露在8080端口上也不太安全,所以這里我們還是選擇修改一下:
vim /etc/sysconfig/jenkins

(3)啟動Jenkins
輸入如下命令,即可啟動Jenkins
service jenkins restart
注意,如果你的JDK的存放路徑和Jenkins默認配置的jdk路徑不符的話,上面的命令是會執(zhí)行失敗的:

遇到這種情況,我們需要修改一下Jenkins的配置文件,加入我們本地的jdk路徑
vim /etc/init.d/jenkins

修改完成后,執(zhí)行下面兩條命令即可啟動Jenkins了
# 刷新配置
systemctl daemon-reload
# 重啟jenkins
service jenkins restart
啟動成功后,我們就可以登錄上面我們的Jenkins了。需要注意的是,初次登錄的話,需要驗證密碼和初始化賬戶,這里的話根據頁面提示來就行。然后按照插件的話,建議根據Jenkins推薦的插件來安裝就行。

三、在控制臺進行jenkins服務的重啟、關停、重新加載配置
## exit to shutdown jenkins
http://ip:jenkins_port/exit
## restart to restart jenkins
http://ip:jenkins_port/restart
## reload to reload the configuration
http://ip:jenkins_port/reload
四、常見配置項
(一)系統(tǒng)通用配置
對于jenkins的通用配置(不含憑證配置),我們基本上可以在Manage Jenkins -> System Configuration -> Configure System/Global Tool Configuration這兩個入口中進行配置。這里有2個需要注意的點:
- 不同版本的jenkins對于此處的布局會有不一致的地方,但是基本上配置的地方都是在
Manage Jenkins->System Configuration里面的 -
Configure System主要用來配置系統(tǒng)級別的配置,比如jenkins的主目錄、郵件配置、通用的環(huán)境變量以及其他公共的通用配置等,而Global Tool Configuration主要用來配置常用依賴項,比JDK、Maven、Git等工具,對不同的任務來說,我們有時候會需要用不同版本的工具來進行構建,因此多版本的依賴項我們需要在Global Tool Configuration頁面中進行配置,這樣后續(xù)在定義任務的時候才可以選擇。
相對來說,我們使用Configure System的頻次會更高一些,畢竟Global Tool Configuration

(二)系統(tǒng)憑證配置
jenkins的憑證配置相對來說是比較復雜的,讓我們來從憑證類型開始說起,Jenkins可以存儲以下類型的credentials:
- Secret text - API token之類的token (如GitHub個人訪問token)
- Username and password - 可以為獨立的字段,也可以為冒號分隔的字符串:username:password(更多信息請參照 處理 credentials)
- Secret file - 保存在文件中的加密內容
- SSH Username with private key - SSH 公鑰/私鑰對
- Certificate - a PKCS#12 證書文件 和可選密碼
- Docker Host Certificate Authentication credentials.
一般來說,我們用的比較多的就是用戶名密碼和SSH 公鑰/私鑰對,前者用于各種場景的賬號驗證,后者用于ssh執(zhí)行shell腳本。
下面我們來說一下如何配置和使用一個憑據,首先我們先進入到憑據的配置入口,一般來說是位于左側菜單的“憑據”入口,不過高版本jenkins的憑證入口有所改動,要在Manage Jenkins -> Security -> Credentials/Credentials Providers(相當于是把原先的入口更加細致化的拆分為2個模塊出來),前者的用于配置具體的憑證內容,后者用于配置jenkins支持的憑證類型。一般來說,我們最常用的就是前者了,后者一般是用的默認配置。


接著我們進入系統(tǒng)域下配置一個全局的憑證,

- 關于范圍
范圍是指這個憑證可以在哪些場景下使用,如果選擇的是global的話,那么基本上所有用到用戶密碼類型的憑證時,都會把我們新建的憑證作為選項之一,而如果選擇System的話,那么只有jenkins配置通用系統(tǒng)配置的時候,憑證才是可見的,這樣就可以在一定程度上保證憑證的安全性。(為什么說可以保證憑證的安全性呢?因為pipeline腳本以及其他插件其實是有可能導致我們任務在執(zhí)行的過程中把憑證信息暴露的,而如果本身你已經確定憑證就是只有系統(tǒng)級別的配置才會用到,那么可以考慮在一開始的時候就配置正確的生效范圍) - 關于ID
這里建議是按規(guī)范起一個ID名稱,方便后續(xù)管理的憑證的時候知道我們這個憑證的作用,如果不填的話默認會生成一個UUID
(ID不填的話,那么描述就不能再偷懶了,不然后續(xù)時間一長管理起來就會比較頭痛) - 關于是否加密用戶名
如果勾選了這個選項的話,那么在查看下拉框選項時,就對用戶名/密碼不可見了,下拉框選項中只會展示描述,如果描述沒填的話就會展示ID,所以如果本身描述沒有填,ID又不按規(guī)范自定義的話,自己在選擇憑證的時候也會比較混亂。


小結
個人感覺jenkins工具十分全面,業(yè)內的支持度和使用也很廣,是一個值得學習的集成工具,但大而全也就意味著相對比較復雜,初次接觸jenkins可以嘗試配置里面的一些功能,了解常用的配置項都在那里,以及不同模塊配置的位置,會對熟悉這個工具有很大的幫助。
然后總的來說,憑證是jenkins中一個比較重要的模塊,通用性很強,所以jenkins把憑證進行統(tǒng)一管理,方便不同的可配置項可以復用,其實也是一種復用思想的體現。
參考文章
Jenkins官方文檔:https://www.jenkins.io/zh//doc/book/using/using-credentials/