Jenkins 常用外掛介紹
1. 介紹
剛開始接觸Jenkins,大部分都會從外掛開始吧。我也是一樣。被各種外掛弄的懵逼。
本篇內容只是簡單介紹各種外掛的作用。
2. 常見外掛
Jenkins 在初始化的時候,會推薦一些外掛讓我們進行安裝。這些外掛都是Jenkins社羣推薦的,大部分人都會使用到的外掛。
還有一些外掛,是我們自己在實際使用過程中,根據公司需求和個人需求進行安裝的一些外掛。
下面也是根據這兩種進行一個介紹。如果,工作使用的外掛使用的頻率比較大,也可能會被Jenkins社羣採納進行推薦。
有些差距名稱後面有Plugin ,有些外掛名稱後面沒有Plugin。 大家自己進行評判哦。
下面配置的目錄,我是按照外掛完整名稱定義的。
2.1 Jenkins推薦外掛
Jenkins自帶推薦安裝的一些外掛例如Git,Folders,BuildTimeout,Credentials Binding,
Timestamper,Workspace Cleanup,Ant,Gradle,Pipeline,GitHub Branch Source等等
這些外掛可以說,是我們的Jenkins必備的外掛了。在我們初始化的時候,就應該安裝好,如果沒有安裝好。就只能自己通過系統管理中進行安裝了。下面簡單介紹介紹上面的一些外掛吧。
Folders Plugin
當前最新版本: 6.773.vd2dcc704ee7e。 (更新頻率比較高)
外掛地址:
https://plugins.jenkins.io/cloudbees-folder/
作用:該外掛允許使用者建立“資料夾”來組織任務。使用者可以定義自定義分類法(例如,按專案型別、組織型別)。資料夾是可巢狀的,您可以在資料夾中定義檢視。
安裝了該外掛之後,我們在新建任務(新建 Item)時,可以新建任務型別中會多一個資料夾型別的選項。
OWASP Markup Formatter Plugin
當前版本:2.7
外掛地址:
https://plugins.jenkins.io/antisamy-markup-formatter/
作用:該外掛允許使用安全的HTML子集格式化Jenkins中的作業、構建、檢視等描述。該外掛使用OWASP Java HTML Sanitizer和允許使用者提交文字中的有限HTML標記的基本策略來清理HTML源。
簡單描述就是,使用者如果在構建過程中輸入的文字為HTML,這個外掛就可以限制這些輸入文字中的HTML標籤。避免該標準造成編譯問題。
Build Timeout
當前版本:1.24
外掛地址:
https://plugins.jenkins.io/build-timeout/
作用:該外掛允許您在構建時間過長時自動終止構建。此外掛不適用於管道(Pipelines),管道有自己的工作流超時步驟。
我們可以在Build Steps中新增 Run with timeout 執行構建超時,配置超時時間,以及超時之後的執行任務等。
可以呼叫DingTalk傳送超時通知。
Credentials Binding Plugin
當前版本:523.vd859a_4b_122e6
外掛地址:
https://plugins.jenkins.io/credentials-binding/
作用:該外掛允許將憑據繫結到環境變數,以便在其他構建步驟中使用。該外掛提供了一種簡單的方法,可以打包所有作業的祕密檔案和密碼,並在構建過程中使用單個環境變數訪問它們。
我們在系統管理中新增的憑證控制等等,都是可以說基於該外掛配置的。這個外掛算是一個底層外掛了。
Timestamper
當前版本: 1.20
外掛地址:
https://plugins.jenkins.io/timestamper/
作用:該外掛允許設定任務log時間戳,將時間戳新增到Jenkins作業的控制檯輸出中。
在構建環境中勾選:Add timestamps to the Console Output 就可以讓我們的控制檯輸出log中每條記錄配置上時間戳了。如果時間戳顯示的日期格式不符合需求,我們可以在系統管理中的Configure System(系統配置)中找到Timestamper 然後定義我們自己的時間戳顯示效果,也可以定義Pipeline中的顯示效果。
Workspace Cleanup Plugin
當前版本:0.43
外掛地址:
https://plugins.jenkins.io/ws-cleanup/
作用:該外掛用來清理工作空間。
我們在構建過程中jenkins會給我們生成一個workspace的工作空間,裡面會儲存我們在構造過程中產生的各種文件(特別是Git拉取到的程式碼)。該外掛就允許我們在每次構造前,將該工作空間清理乾淨。(PS:我們每次構造之後的構建結果,不會儲存在該工作空間中,清理不會造成以前構造的結果被刪除)。
在構建環境中勾選:Delete workspace before build starts 就可以在每次構建時清理了。
Ant Plugin
當前版本:481.v7b_09e538fcca
外掛地址:
https://plugins.jenkins.io/ant/
作用:該外掛用來給Jenkins新增Apache Ant的支援。
我們專案編譯構造過程中如果要使用到Ant的支援,那麼這個外掛就是一個核心外掛了。有了它Jenkins 才能支援Ant。下面的Gradle和它類似。
Gradle Plugin
當前版本:2.0
外掛地址:
https://plugins.jenkins.io/gradle/
作用:該外掛用來給Jenkins新增Gradle的支援。
我們在編譯Android專案的時候,就是通過Gradle進行自動編譯構建的。它和Ant 和Maven是一樣的。如果要編譯Android專案。那麼該外掛就是必須的。
Pipeline
當前版本:590.v6a_d052e5a_a_b_5
外掛地址:
https://plugins.jenkins.io/workflow-aggregator/
作用:該外掛給Jenkins提供Pipeline功能。這個外掛和它依賴的其他外掛,整體組成了Jenkins 2.0的Pipeline功能。
例如:
Pipeline Graph Analysis Plugin : 提供 REST API的pipeline訪問和管理功能。
Pipeline: API:定義管道API的外掛。
Pipeline: Basic Steps:新增管道步驟“build”以觸發其他作業的生成。
Pipeline: Declarative:一個頑固的宣告性的管道。
等等,配套的外掛。這裡就不擴充套件了。
GitHub Branch Source Plugin
當前版本:1695.v88de84e9f6b_9
外掛地址:
https://plugins.jenkins.io/github-branch-source/
作用:該外掛允許從一個或多個GitHub使用者或組織建立基於儲存庫結構的新專案。
要使用該外掛,我們在建立item的時候,型別選擇構建一個多配置專案(Multi-configuration project)或者多管道專案(Multibranch Pipeline)等。
Git
當前版本:4.12.1
外掛地址:
https://plugins.jenkins.io/git/
作用:該外掛為Jenkins專案提供了基本的git操作。它可以輪詢、提取、簽出、分支、列表、合併、標記和推送儲存庫。
我們其實安裝該外掛,就可以實現Git專案的程式碼拉取了。
這個是最基本核心的外掛。後面Git client,Git server Plugin, GitHub plugin ,GitLab Plugin都是針對具體功能需求,減少操作步驟而封裝的各種專用場景下的外掛。
SSH Build Agents plugin
當前版本:2.854.v7fd446b_337c9
外掛地址:
https://plugins.jenkins.io/ssh-slaves/
作用:該外掛為Jenkins專案提供通過SSH啟動代理的方法。
Matrix Authorization Strategy Plugin
當前版本:3.1.5
外掛地址:
https://plugins.jenkins.io/matrix-auth/
作用:該外掛在Jenkins中實現細粒度訪問控制。
我們可以用這個外掛實現各種安全選項控制,給與不同使用者訪問許可權,已經編輯和禁用相關安全工配置選項。
這個外掛是給管理員用的。普通使用者使用不到。
PAM Authentication plugin
當前版本:1.10
外掛地址:
https://plugins.jenkins.io/pam-auth/
作用:該外掛在Jenkins中實現了Unix可插拔身份驗證模組(PAM)的支援。
PAM的完整單詞為:Pluggable Authentication Module
LDAP Plugin
當前版本:2.12
外掛地址:
https://plugins.jenkins.io/ldap/
作用:該外掛提供了另一種使用LDAP驗證使用者的方法。它可以與Active Directory或OpenLDAP等LDAP伺服器一起使用。
我們如果用不到的話,是可以禁用該外掛的。
LDAP指輕量目錄訪問協議,完整單詞為:Lightweight Directory Access Protocol
Email Extension Plugin
當前版本:2.92
外掛地址:
https://plugins.jenkins.io/email-ext/
作用:該外掛允許您配置電子郵件通知的各個方面。您可以自定義電子郵件的傳送時間、收件人以及電子郵件內容。
我們在Jenkins中實現的各種郵件通知功能,通常就是由該外掛實現支援的。
Mailer Plugin
當前版本:438.v02c7f0a_12fa_4
外掛地址:
https://plugins.jenkins.io/mailer/
作用:此外掛允許您為生成結果配置電子郵件通知。
Mailer Plugin是一個提供了基本郵件通知的外掛,但是該外掛實現的功能比較少和簡單。例如我們想自定義郵件標題內容等。那麼就可以使用Email Extension Plugin外掛了。Mailer Plugin這個是Jenkins系統外掛。
Localization: Chinese (Simplified)
當前版本:1.0.24
外掛地址:
https://plugins.jenkins.io/localization-zh-cn/
作用:該外掛為Jenkins 提供了簡體中文語言包。
我們Jenkins中的各種配置項,有些是中文有些是英文,那就是這個外掛包在生效。它對部分功能實現了翻譯,部分功能沒有翻譯造成的。我們如果想使用純英文版本可以關閉該外掛。
推薦外掛,到這裡就介紹差不多了。我們如果不明白外掛的功能可以通過外掛地址,去看詳細的介紹,唯一不美好的地方在於,詳細介紹中都是英文的。
2.2 工作使用推薦外掛
把系統推薦的外掛介紹完畢後,下面介紹一些工作中用到的。或者幫助我們提升Jenkins理解的外掛。
這些外掛就屬於仁者見仁了。
Environment Injector Plugin
當前版本:2.881.v37c62073ff97
外掛地址:
https://plugins.jenkins.io/envinject/
作用:可以在編譯之後列出構造過程中的環境變數,包括引數化構造的環境變數。
同時,也可以為任務設定自定義環境變數。例如可以將密碼安全的注入到構造過程中。
Build Environment Plugin
當前版本:1.7
外掛地址:
https://plugins.jenkins.io/build-environment
作用:這個外掛顯示了關於構建環境的資訊,並提供了比較兩個構建環境的選項。它可以將我們整個構建過程中的全域性變數全部展示出來。相較於Environment Injector Plugin 外掛,它能夠顯示更多的變數。
我們如果在使用Groovy指令碼的時候,不知道有哪些全域性屬性。或者我們構造過程中用的很多外掛,但是不知道那些外掛有沒有暴露一些全域性引數。都可以用這個介面進行測試和清理。
同時它還能將引數資料進行一個記錄。跟隨每次構建的輸出結果進行展示。
GitLab Plugin
當前版本:1.5.36
外掛地址:
https://plugins.jenkins.io/gitlab-plugin/
作用:該外掛允許GitLab在提交程式碼或開啟/更新合併請求時觸發Jenkins中的構建。它還可以將構建狀態傳送回GitLab。
我們如果專案是通過GitLab進行控制的。那麼可以用這個外掛來實現,git提交後自動構建。
同時也可以配置GitLab的相關認證。
Upload to pgyer
當前版本:2.1
外掛地址:
https://plugins.jenkins.io/upload-pgyer/
作用:可以將我們編譯後的Android應用或者ios應用上傳到蒲公英平臺。介面上傳完畢後,會自動返回相關下載連結之類的。
Groovy Postbuild
當前版本:2.5
外掛地址:
https://plugins.jenkins.io/groovy-postbuild/
作用:該外掛將會在Jenkins JVM中執行一個groovy指令碼。我們可以通過Groovy指令碼執行一些事務,並修改構建結果。
例如我在這篇文章中https://zinyan.com/?p=383 通過groovy指令碼實現了釘釘訊息的傳送,就是一個http請求過程的觸發。
如果我們使用Pipeline外掛,可以不用額外安裝Groovy Postbuild因為有一個Pipeline: Groovy
build user vars plugin
當前版本:1.9
外掛地址:
https://plugins.jenkins.io/build-user-vars-plugin/
作用:該外掛將會自動生成6個環境變數。讓我們在後面指令碼等地方使用。
Variable | Description |
BUILD_USER | Full name (first name last name) 就是我們的登入使用者名稱 |
BUILD_USER_FIRST_NAME | First name 使用者名稱開頭 |
BUILD_USER_LAST_NAME | Last name 使用者名稱結尾 |
BUILD_USER_ID | Jenkins user ID 使用者id |
BUILD_USER_GROUPS | Jenkins user groups 使用者分組 |
BUILD_USER_EMAIL | Email address 使用者郵件地址 |
有些構建過程,需要知道是誰操作的。那麼這個外掛就可以便捷建立了。
DingTalk
當前版本:2.4.10
外掛地址:
https://plugins.jenkins.io/dingding-notifications/
作用:該外掛可以將編譯過程通過釘釘機器人傳送到我們的釘釘群中。
這個外掛安裝之後,必須重啟Jenkins才能在具體任務中生效的。
NodeJs Plugin
當前版本:1.5.1
外掛地址:
https://plugins.jenkins.io/nodejs/
作用:該外掛為NodeJs & npm 專案提供Jenkins整合。前端頁面編譯構造過程中會需要NodeJs。
這個外掛就必不可少。
Build Name and Description Setter
當前版本:2.2.0
外掛地址:
https://plugins.jenkins.io/build-name-setter
作用:該外掛將構建的顯示名稱設定為#1、#2、#3…之外的其他名稱,以便您可以使用在上下文中更有意義的識別符號。安裝此外掛時,您的作業配置頁面將獲得附加設定,允許您為每個新生成指定生成名稱。配置完畢後,也可以在Pipeline中使用。除了定義名稱外,還可以定義一些描述資訊哦。
Job Configuration History
當前版本:1183.v6e2785ff75e0
外掛地址:
https://plugins.jenkins.io/jobConfigHistory/
作用:該外掛儲存所有作業和系統配置的副本。我們如果配置完畢後,想撤銷以前的配置。那麼這個外掛就是神器了。
如果你更改了某個配置,但是現在又想更改回去,沒有備份而且忘了,那麼可以使用這個外掛。
它會在面板中建立一個Job Conflg History 選單。將會顯示我們每一次的配置更改。我們可以一鍵回滾到指定配置
Display Console Output
當前版本:1.0.5
外掛地址:
https://plugins.jenkins.io/display-console-output/
作用:該外掛可以直接在專案頁面展現上一個構建的控制檯輸出介面。這樣我們點選構建後,可以很方便的看到構建輸出日誌了。建議安裝。
Monitoring
當前版本:1.91.0
外掛地址:
https://plugins.jenkins.io/monitoring/
作用:該外掛通過JavaMelody監控Jenkins的效能。
Active Choices
當前版本:2.6.4
外掛地址:
https://plugins.jenkins.io/uno-choice
作用:該外掛用於引數化的自由式Jenkins作業,以建立指令碼化、動態和互動式作業引數。活動選項引數可以動態更新,並可以呈現為組合框、覈取方塊、單選按鈕或豐富的HTML UI小部件。根據所選引數,自動調出對應引數所依賴的後續引數。
通俗解釋:在一個專案中,可以根據變數選擇,執行不同的構建指令碼或者構建過程。提高複用性。
Git parameter
當前版本:0.9.18
外掛地址:
https://plugins.jenkins.io/git-parameter/
作用:該外掛允許您在構建中指定git分支、標記、請求或修訂號作為引數。可以讓我們基於Git的引數化構建。
這個外掛會自動使用Git 和 Git Client外掛
Gitee
當前版本:1.2.7
外掛地址:
https://plugins.jenkins.io/gitee/
作用:該外掛允許Gitee在提交程式碼或開啟/更新合併請求時觸發Jenkins中的構建。它還可以將構建狀態傳送回Gitee。和上面的GitLab Plugin外掛是一樣的。只是針對的平臺不一樣了而已。
Jira
當前版本:3.8
外掛地址:
https://plugins.jenkins.io/jira/
作用:該外掛允許Jenkins執行錯誤報點的記錄。如果通過JIRA記錄Bug列表。那麼這個外掛值得大家試試。
外掛將自動將所有匹配的問題名稱超連結到Jira。
3.總結
上面的外掛,通過標題都可以在
https://plugins.jenkins.io/ 官方外掛市場上查詢到。
通過每個外掛地址,都可以通過瀏覽器進行下載.hpi檔案(Jenkins 外掛的檔案格式)。
安裝外掛有兩種方式:
- 通過Jenkins後臺的系統管理中的外掛管理的Available plugins 進行搜尋安裝。
- 通過外掛管理中的Advanced Setting面板的Deploy Plugin功能,上傳hpi檔案後點選Deploy按鈕進行本地上傳安裝。
所有介紹到這裡就結束了。希望能夠解決大家的一部分疑惑。