插件是增強(qiáng)Jenkins環(huán)境功能以滿足組織或用戶特定需求的主要手段。有超過(guò)一千種不同的插件 ,可以安裝在Jenkins主機(jī)上,并集成各種構(gòu)建工具,云提供商,分析工具等等。
可以從更新中心自動(dòng)下載插件及其依賴關(guān)系 。更新中心是由Jenkins項(xiàng)目運(yùn)營(yíng)的一項(xiàng)服務(wù),該項(xiàng)目提供了由Jenkins社區(qū)的各種成員開(kāi)發(fā)和維護(hù)的開(kāi)源插件的清單。
本節(jié)將介紹從Jenkins Web UI中管理插件的基礎(chǔ)知識(shí)到主文件系統(tǒng)的更改。
Jenkins提供了幾種不同的方法來(lái)在主機(jī)上安裝插件:
每種方法將導(dǎo)致插件由Jenkins加載,但可能需要不同級(jí)別的訪問(wèn)權(quán)限和權(quán)衡才能使用。
這兩種方法要求Jenkins管理員能夠從更新中心下載元數(shù)據(jù),無(wú)論是由Jenkins項(xiàng)目運(yùn)行的主更新中心 ,還是自定義更新中心。
插件被打包為自包含的.hpi文件,它們具有插件需要成功運(yùn)行的所有必需的代碼,圖像和其他資源。
安裝插件的最簡(jiǎn)單和最常見(jiàn)的方法是通過(guò) 管理Jenkins > 管理插件視圖,可供Jenkins環(huán)境的管理員使用。
在“ 可用”選項(xiàng)卡下,可以搜索并考慮可從配置的“更新中心”下載的插件:
大多數(shù)插件可以通過(guò)檢查插件旁邊的框立即安裝和使用,然后單擊安裝而不重新啟動(dòng)。
如果可用插件列表為空,則主機(jī)可能配置不正確或尚未從更新中心下載插件元數(shù)據(jù)。單擊立即檢查按鈕將強(qiáng)制Jenkins嘗試聯(lián)系其配置的更新中心。
管理員也可以使用Jenkins CLI來(lái)提供安裝插件的命令。管理Jenkins環(huán)境的腳本或配置管理代碼可能需要在Web UI中安裝插件,而無(wú)需直接的用戶交互。Jenkins CLI允許命令行用戶或自動(dòng)化工具下載插件及其依賴項(xiàng)。
java -jar jenkins-cli.jar -s http://localhost:8080/ install-plugin SOURCE ... [-deploy] [-name VAL] [-restart]
Installs a plugin either from a file, an URL, or from update center.
SOURCE : If this points to a local file, that file will be installed. If
this is an URL, Jenkins downloads the URL and installs that as a
plugin.Otherwise the name is assumed to be the short name of the
plugin in the existing update center (like "findbugs"),and the
plugin will be installed from the update center.
-deploy : Deploy plugins right away without postponing them until the reboot.
-name VAL : If specified, the plugin will be installed as this short name
(whereas normally the name is inferred from the source name
automatically).
-restart : Restart Jenkins upon successful installation.
更新中心僅允許安裝最新發(fā)布的插件版本。在需要舊版本插件的情況下,Jenkins管理員可以下載較舊的.hpi存檔,并手動(dòng)將其安裝在Jenkins主機(jī)上。
假設(shè).hpi已下載文件,登錄的Jenkins管理員可以從Web UI中上載該文件:
一旦插件文件被上傳,必須手動(dòng)重新啟動(dòng)Jenkins主機(jī),從而更改生效。
假設(shè).hpi系統(tǒng)管理員已經(jīng)明確下載了一個(gè)文件,管理員可以手動(dòng)將.hpi文件放在文件系統(tǒng)的特定位置。
將下載的.hpi`文件復(fù)制到JENKINS_HOME/pluginsJenkins主目錄中(例如,Debian系統(tǒng)JENKINS_HOME一般 /var/lib/jenkins)。
在插件加載并在Jenkins環(huán)境中可用之前,主人將需要重新啟動(dòng)。
更新站點(diǎn)中的插件目錄的名稱并不總是與插件的顯示名稱相同。搜索 plugins.jenkins.io 以獲取所需的插件將提供相應(yīng)的.hpi文件鏈接。
更新列在“ 管理插件”頁(yè)面的“ 更新”選項(xiàng)卡中,可以通過(guò)選中所需插件更新的復(fù)選框并單擊“ 立即下載并重新啟動(dòng)”按鈕后進(jìn)行安裝。
默認(rèn)情況下,Jenkins管理將每24小時(shí)檢查一次更新中心的更新。要手動(dòng)觸發(fā)檢查更新,只需點(diǎn)擊更新選項(xiàng)卡上的立即檢查按鈕。
當(dāng)插件不再在Jenkins環(huán)境中使用時(shí),從Jenkins主機(jī)中刪除插件是謹(jǐn)慎的。這提供了許多好處,例如在啟動(dòng)或運(yùn)行時(shí)減少內(nèi)存開(kāi)銷,減少Web UI中的配置選項(xiàng),以及消除與新插件更新的未來(lái)沖突的潛力。
卸載插件的最簡(jiǎn)單的方法是導(dǎo)航到“ 管理插件”頁(yè)面上的“ 已安裝”選項(xiàng)卡。從那里,Jenkins將自動(dòng)確定哪些插件安全卸載,那些不依賴于其他插件的插件,并提供一個(gè)這樣做的按鈕。
也可以通過(guò).hpi
從JENKINS_HOME/plugins
主機(jī)上的目錄中刪除相應(yīng)的文件來(lái)卸載插件。該插件將繼續(xù)運(yùn)行,直到主機(jī)重新啟動(dòng)。
如果某個(gè)插件.hpi文件已被刪除但其他插件需要,則Jenkins主機(jī)可能無(wú)法正確啟動(dòng)。
卸載插件并不會(huì)刪除插件可能已經(jīng)創(chuàng)建的配置。如果存在引用插件創(chuàng)建的數(shù)據(jù)的現(xiàn)有作業(yè)/節(jié)點(diǎn)/視圖/構(gòu)建/ etc配置,則Jenkins將在引導(dǎo)期間警告某些配置無(wú)法完全加載,并忽略無(wú)法識(shí)別的數(shù)據(jù)。
由于配置將被保留,直到它們被覆蓋,重新安裝插件將導(dǎo)致這些配置值重新出現(xiàn)。
Jenkins提供了通過(guò)卸載的插件清除配置的設(shè)施。導(dǎo)航到管理Jenkins,然后單擊管理舊數(shù)據(jù)以查看和刪除舊數(shù)據(jù)。
禁用插件是退出插件的較軟的方式。Jenkins將繼續(xù)認(rèn)識(shí)到該插件已安裝,但它不會(huì)啟動(dòng)該插件,并且此插件不會(huì)提供任何擴(kuò)展。
Jenkins管理員可以通過(guò)取消選中“ 管理插件”頁(yè)面的“ 已安裝”選項(xiàng)卡上的框(見(jiàn)下文)來(lái)禁用插件 。
統(tǒng)管理員也可以通過(guò)在Jenkins主機(jī)上創(chuàng)建文件來(lái)禁用插件,例如:JENKINS_HOME/plugins/PLUGIN_NAME.hpi.disabled。
由禁用的插件創(chuàng)建的配置就像插件被卸載一樣,只要它們?cè)谝龑?dǎo)時(shí)引起警告,但是會(huì)被忽略。
固定插件功能已在Jenkins 2.0中刪除。版本晚于Jenkins 2.0不會(huì)捆綁插件,而是提供一個(gè)向?qū)?lái)安裝最有用的插件。
固定插件的概念適用于與Jenkins 1.x捆綁的插件,例如 Matrix授權(quán)插件。
默認(rèn)情況下,每當(dāng)Jenkins升級(jí)時(shí),其捆綁的插件將覆蓋當(dāng)前安裝的插件版本JENKINS_HOME。
但是,當(dāng)手動(dòng)更新捆綁的插件時(shí),Jenkins會(huì)將該插件標(biāo)記為特定版本。在文件系統(tǒng)上,Jenkins創(chuàng)建一個(gè)空文件,JENKINS_HOME/plugins/PLUGIN_NAME.hpi.pinned 用于指示固定。
Jenkins啟動(dòng)期間,固定插件永遠(yuǎn)不會(huì)被捆綁插件覆蓋。(較新版本的Jenkins會(huì)警告您,如果固定插件 比當(dāng)前捆綁的舊版本更舊)。
將捆綁插件更新到Update Center提供的版本是安全的。這通常是獲取最新功能和修復(fù)程序所必需的。捆綁版本偶爾更新,但不一致。
插件管理器允許明確地取消固定插件。該 JENKINS_HOME/plugins/PLUGIN_NAME.hpi.pinned文件也可以手動(dòng)創(chuàng)建/刪除以控制釘扎行為。如果該pinned文件存在,Jenkins將使用用戶指定的任何插件版本。如果文件不存在,Jenkins將在啟動(dòng)時(shí)將插件恢復(fù)為默認(rèn)版本。
更多建議: