Jenkins系列(一)——Jenkins的安裝和常見配置

前言

本篇文章主要是講怎么在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/

Jenkins官網

也可以根據我下面的命令來進行安裝:

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
修改jenkins端口號
(3)啟動Jenkins

輸入如下命令,即可啟動Jenkins

service jenkins restart

注意,如果你的JDK的存放路徑和Jenkins默認配置的jdk路徑不符的話,上面的命令是會執(zhí)行失敗的:


jenkins啟動失敗

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

vim  /etc/init.d/jenkins
修改Jenkins讀取JDK的配置

修改完成后,執(zhí)行下面兩條命令即可啟動Jenkins了

# 刷新配置
systemctl daemon-reload
# 重啟jenkins
service jenkins restart

啟動成功后,我們就可以登錄上面我們的Jenkins了。需要注意的是,初次登錄的話,需要驗證密碼和初始化賬戶,這里的話根據頁面提示來就行。然后按照插件的話,建議根據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

image.png
(二)系統(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支持的憑證類型。一般來說,我們最常用的就是前者了,后者一般是用的默認配置。

低版本的jenkins憑據入口在菜單的左側
高版本的jenkins憑據入口

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


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

小結

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

參考文章
Jenkins官方文檔:https://www.jenkins.io/zh//doc/book/using/using-credentials/

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容