<h2>摘要:</h2>
對於中小型運維團隊,jenkins作為運維利器,可以解決很多工作中的痛點。基於UI的特性從而讓使用者的入門成本很低,基於插件可以具備認證,記錄,條件觸發以及聯動,讓運維工程師可以將精力放在業務而非通用需求上,從而大幅提升運行效率,降低開發成本。基於分布式的調度能力,又能在異構網絡中進行集中式管理。這其中,插件功不可沒,因此本文以截圖的形式,詳細介紹在運維中jenkins的20+主要插件
本文鑒於篇幅,無法對每個插件的用法進行詳細闡述,僅對插件的關鍵點進行截圖,大家可以在jenkins插件的官網進行查詢https://plugins.jenkins.io
Build Pipeline Plugin:灰度發布
使用心得:將多個job進行串聯,從而實現分級發布的能力。每個job完成之后,可以進行效果檢查,通知關聯系統等等功能,從而實現了一套較為完整的全流程自動變更機制
Conditional BuildStep:策略判斷
使用心得:對於任務執行,增加了很多的觸發條件判斷,從而讓任務執行變得更加智能
Ansible Plugin:批量執行
使用心得:通過jenkins+ansbile可以實現任務的批量執行,可以不使用ansible模式,直接在shell里面調用ansible即可,但是需要在ansible部署的機器上設置好主機列表 ;也可以基於ansible模式進行操作,兩種截圖均有提供
Build timeout plugin:超時控制
使用心得:設置Job運行的最大耗時,避免異常后無人介入導致Job持續運行占用資源,最小超時時間為3min
Cron Column Plugin:定期執行
使用心得:通過定時任務例行的運行一些job,實現例行的巡檢,流量切換,預案演練,重啟等操作
Job Configuration History Plugin:變更查詢
使用心得:使job具備版本管理的能力,diff和rollback功能更是非常贊
HTTP Request Plugin:跨平台調用
使用心得:在構建前后可以通過該插件以http形式調用各種api接口實現和內部系統的聯動
Parameterized Trigger plugin:參數傳遞
使用心得:觸發下一個job時,將上一個job的參數傳遞下去,利用該特性,也可以將執行的Slave作為參數進行傳遞,從而解決在公有雲多租戶場景下JOB通用的問題。通過build on the same node即可解決所有JOB都在特定的slave上執行。需要注意的是,current build parameters僅僅傳遞該JOB編譯用到的參數,而非上一個JOB傳遞下來的所有參數,在多級傳遞中需要注意。
Git plugin
使用心得:通過版本庫獲取代碼,從而減少在Jenkins上大量編寫腳本,從而帶來的較高的維護成本,正確的使用Jenkins的方式應該是將大量的業務邏輯放在版本庫中,Jenkins只是膠水作用,將各種操作粘合在一起從而讓任務能夠順利完成。
Job Import Plugin
使用心得:可以快速導入其他jenkins集群的已有job,需要認證的jenkins系統導入需要提供憑證才可以
SSH Slaves plugin:總控方式管理公有雲的多個租戶
使用心得:通過該插件可以將Master上的JOB在Slave的機器上執行,Master通過SSH的方式連接Slave。主要用途有兩種,第一種是降低Master的負載,在Master的JOB較多的時候使用;第二種是將Slave當做代理,用於管理Master無法直接聯通的網絡環境,如多個公有雲租戶。Master以SSH方式連接Slave時候,建議使用信任關心處理,這樣可以減少很多的問題和安全風險 。同時,Master和Slave的Jenkins——Home變量要一致,否則會導致部分任務執行異常。調整了Slave的部署目錄,需要斷開Slave,然后重新連接才能生效jenkins-home。
Copy To Slave Plugin:Slave集群數據推送
使用心得:通過該插件,Master可以在任務執行前先以SSH方式登錄到Slave上,然后將指定的數據推送到Slave上。主要的使用場景,如果任務執行需要先下載版本庫的內容再執行,那么下載動作是放在Slave上進行的,因為異構網絡導致Slave無法連接相關資源時,該方式可以很好的解決
Slave Prerequisites plugin:對Slave集群進行篩選
使用心得:通過該插件,Master可以在任務執行前先以SSH方式登錄到Slave上,然后執行預定義的Shell腳本,進行自定義的健康檢查,從而在多個Slave的情況下選擇最健康的Slave進行任務的執行,提升任務執行的成功率
Built-on Column:展示實際執行任務的Node名稱
使用心得:通過該插件,可以在頁面上直觀的看到是哪個節點指定的對應的JOB,對於多節點的場景下能夠對於排錯有很大幫助
Timestamper:耗時分析
使用心得:通過該插件,可以將任務輸出的內容,每行前均添加時間戳,從而便於分析任務的耗時問題。默認情況下,前面的時間戳是不存在的,僅有后面的內容。同時,對於時間戳的展現形式,也有多種,詳見截圖
**11:30:56** Started by user admin
**11:30:56** Building remotely on slave1 in workspace /home/jenkins/jobs/workspace/testSlave1
**11:30:56** [testSlave1] $ /bin/sh -xe /tmp/jenkins4021440449868306197.sh
**11:30:56** + sudo ansible test -m command -a ifconfig
Mask Passwords Plugin:密碼加密
使用心得:通過該插件,可以將用戶輸入的密碼內容以********進行代替,從而避免在輸入秘鑰后在output中別人看到的隱患。安裝完畢該插件后,需要在系統管理-系統設置中對何種類型的參數進行密碼,然后在JOB中構建環境部分,勾選Mask passwords and regexes從而讓密碼加密功能生效
15:12:54 + echo ********
15:12:54 ********
15:12:54 Finished: SUCCESS
HTML Publisher plugin:支持HTML輸出格式的展現
使用心得:通過該插件可以將Jenkins的執行結果以HTML方式進行展現,當然前提是你的輸出結果是HTML文件,該插件現在還無法做到將任意類型的輸出內容格式化為HTML
Mailer Plugin:通過郵件發送任務執行情況
使用心得:通過該插件可以將Jenkins的執行結果(主要是失敗任務)以郵件方式進行發送,需要注意的地方是,在配置頁面中SMTP認證的用戶名和jenkins location的系統管理員郵箱地址需要相同,不然在QQ郵箱中無法正常發出,會報”501 mail from address must be same as authorization user”
ThinBackup Plugin:定期備份Jenkins
使用心得:通過該插件可以將Jenkins進行定期備份,主要是試用定期備份功能,設置最大的備份數量,歷史備份壓縮保存以及對需要備份的文件和目錄進行定制化設置
Configuration Slicing Plugin:批量修改JOB的配置
使用心得:通過該插件可以將Jenkins的所有JOB的某些配置點(截圖2列出)進行單一頁面的展示和部分修改。推薦幾個常用的修改點,Execute shell slicer,parameters,Timer Trigger Slicer,Timestamper Slicer,Tied Label Slicer,Discard Old Builds Slicer。parameters修改截圖如下圖所示,全部JOB的parameters已經進行了羅列,按需修改即可。
Multi slave config plugin:批量修改slave的配置
使用心得:通過該插件可以將Jenkins的所有slave進行批量的管理
CAS protocol version 1 plugin
使用心得:通過該插件接入公司的認證系統,從而減少了自己維護認證信息的成本
Folder
使用心得:通過文件夾進行不同類型的JOB的管理
原文地址:http://www.yunxiaobai.net/archives/15 </div>