Jenkins 自動化安裝插件

首發於 Jenkins 中文社區git

手工安裝 Jenkins 插件的方法

一般,咱們有兩種方法安裝 Jenkins 插件。第一種方法是到 Jenkins 插件管理頁面搜索插件,而後安裝。第二種方法是上傳 Jenkins 插件的 hpi 文件安裝。這兩種方法能知足大多數人的需求。github

第一種方法,以下圖所示:docker

第二種方法,以下圖所示:shell

可是對於須要保證 Jenkins 穩定或在 Jenkins 上進行二次開發的同窗來講,以上方法是沒法知足需求的。bash

第一種方法是沒法指定插件的版本。第二種方式必須本身找到該插件的依賴樹,而後根據依賴關係一個個地安裝。是的,手工上傳插件的這種方法,Jenkins 是不會自動下載依賴的。markdown

還有,就是這兩種方式都沒法實現批量安裝。oop

自動安裝插件的方法

那麼,有什麼方法能指定插件的版本,又能自動下載它的依賴,還能批量下載呢?spa

幸運的是,Jenkins 的 Docker 鏡像的代碼倉庫裏的 install-plugins.sh 腳本已經實現。只不過須要咱們拿過來小小修改才能使用。筆者修改後建立了相應的代碼倉庫:jenkins-install-plugins-shell 。連接在文章末尾。插件

如下是 jenkins-install-plugins-shell 的使用方法:code

  1. 將代碼 clone 到 JENKINS_HOME 目錄中。
cd $JENKINS_HOME
git clone https://github.com/zacker330/jenkins-install-plugins-shell.git
cd jenkins-install-plugins-shell
複製代碼
  1. 在 plugins.txt 中加入但願安裝的插件 在 jenkins-install-plugins-shell 目錄中,有一個 plugins.txt 文件,在文件中寫入但願安裝的插件及版本號。例如:
ansible:1.0
powershell:1.3
複製代碼
  1. 執行安裝
# Jenkins War 的路徑,用於分析
export JENKINS_WAR_PATH=<Jenkins war文件的路徑>
chmod +x install-plugins.sh jenkins-support
./install-plugins.sh < plugins.txt
複製代碼
  1. 重啓 Jenkins install-plugins 本質上作的事情就只是將插件從雲端下載到 JENKINS_HOME 下的 plugins 目錄中。要使安裝的插件生效,還須要重啓 Jenkins。

關於 Jenkins 插件的名稱

Jenkins 插件有兩個名稱。一個叫 display name,一個叫 short name。好比 Ansible 插件的 disply name 爲 Ansible plugin,short name 爲 ansible。

如何知道一個插件的 short name 呢?能夠在 Jenkins 插件官網上找到,好比 Ansible 的:

plugins.txt 中使用的是 short name。

總結

筆者爲何必定要肯定 Jenkins 插件的版本?是由於插件的版本會影響 Jenkins 流水線的可靠性。因此,筆者纔會這麼在乎 Jenkins 插件的版本。

附錄

做者:翟志軍

相關文章
相關標籤/搜索