首發於 Jenkins 中文社區git
一般,咱們有兩種方法安裝 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
cd $JENKINS_HOME git clone https://github.com/zacker330/jenkins-install-plugins-shell.git cd jenkins-install-plugins-shell 複製代碼
jenkins-install-plugins-shell
目錄中,有一個 plugins.txt 文件,在文件中寫入但願安裝的插件及版本號。例如:ansible:1.0
powershell:1.3
複製代碼
# Jenkins War 的路徑,用於分析 export JENKINS_WAR_PATH=<Jenkins war文件的路徑> chmod +x install-plugins.sh jenkins-support ./install-plugins.sh < plugins.txt 複製代碼
Jenkins 插件有兩個名稱。一個叫 display name,一個叫 short name。好比 Ansible 插件的 disply name 爲 Ansible plugin,short name 爲 ansible。
如何知道一個插件的 short name 呢?能夠在 Jenkins 插件官網上找到,好比 Ansible 的:
在 plugins.txt
中使用的是 short name。
筆者爲何必定要肯定 Jenkins 插件的版本?是由於插件的版本會影響 Jenkins 流水線的可靠性。因此,筆者纔會這麼在乎 Jenkins 插件的版本。
做者:翟志軍