Jenkins 自動化安裝外掛
通常,我們有兩種方法安裝 Jenkins 外掛。第一種方法是到 Jenkins 外掛管理頁面搜尋外掛,然後安裝。第二種方法是上傳 Jenkins 外掛的 hpi 檔案安裝。這兩種方法能滿足大多數人的需求。
第一種方法,如下圖所示:
第二種方法,如下圖所示:
但是對於需要保證 Jenkins 穩定或在 Jenkins 上進行二次開發的同學來說,以上方法是無法滿足需求的。
第一種方法是無法指定外掛的版本。第二種方式必須自己找到該外掛的依賴樹,然後根據依賴關係一個個地安裝。是的,手工上傳外掛的這種方法,Jenkins 是不會自動下載依賴的。
還有,就是這兩種方式都無法實現批量安裝。
自動安裝外掛的方法
那麼,有什麼方法能指定外掛的版本,又能自動下載它的依賴,還能批量下載呢?
幸運的是,Jenkins 的 Docker 映象的程式碼倉庫裡的 install-plugins.sh 指令碼已經實現。只不過需要我們拿過來小小修改才能使用。筆者修改後建立了相應的程式碼倉庫:jenkins-install-plugins-shell 。連結在文章末尾。
以下是 jenkins-install-plugins-shell 的使用方法:
- 將程式碼 clone 到 JENKINS_HOME 目錄中。
cd $JENKINS_HOME git clone https://github.com/zacker330/jenkins-install-plugins-shell.git cd jenkins-install-plugins-shell 複製程式碼
-
在 plugins.txt 中加入希望安裝的外掛
在
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 install-plugins 本質上做的事情就只是將外掛從雲端下載到 JENKINS_HOME 下的 plugins 目錄中。要使安裝的外掛生效,還需要重啟 Jenkins。
關於 Jenkins 外掛的名稱
Jenkins 外掛有兩個名稱。一個叫 display name,一個叫 short name。比如 Ansible 外掛的 disply name 為 Ansible plugin,shortname 為 ansible。
如何知道一個外掛的 short name 呢?可以在 Jenkins 外掛官網上找到,比如 Ansible 的:
在plugins.txt
中使用的是 short name。