Jenkins: 配置信息變更歷史
像 Jenkins 這樣的系統,使用的過程就是配置文件變更的過程。如果能夠對配置文件的變更進行跟蹤管理,將極大的提高系統的可用性。Job Configuration History 插件就是這麽一款實用而精巧的組件。很顯然,相對於它的功能而言,它的名字實在是太低調了。因為它不僅能處理 Job Configuration 的變更歷史,還能夠處理系統級別的配置變更歷史。
安裝 Job Configuration History 插件
在 Jenkins->Plugin Manager 界面中選擇 "Available" 標簽頁,輸入 "Job Configuration History" 進行過濾:
點擊安裝並重啟的按鈕就可以啦!
Overview 視圖
安裝完成後,主頁的菜單項中已經添加了 "Job Config History" 菜單:
點擊該菜單進入插件的 Overview 視圖:
在這裏我們可以總覽系統中的配置變更(其實是系統配置和所有根及項目的配置),並且可以通過左上方的菜單項或者是正上方的鏈接過濾出 "系統配置"、"Job 配置"、"創建 Job 的配置" 以及 "刪除 Job 的配置" 的歷史記錄。並且可以查看歷史記錄中配置文件的內容。
Agent Config History 視圖
下面我們通過 Agent Config History 視圖來介紹該插件對配置文件歷史數據的強大處理能力。選擇並進入一個 Agent 的信息界面:
選擇 "Agent Config History":
我們可以選擇不同的配置版本進行比較,或者是用歷史版本覆蓋當前的版本。
我們選擇不同的版本,然後點擊 "Show Diffs" 按鈕:
上圖主要是對比不同版本配置文件的差異,但是看到這麽多的按鈕確實讓人有點不知所措。它們的操作為:
Prev:左右兩個文件都更新為前一個版本(時間上比當前版本更早的一個版本)。
Next:左右兩個文件都更新為下一個版本(時間上比當前版本更晚的一個版本)。
左 Shrink Diff:左邊文件更新為時間上比當前版本更晚的一個版本。
左 Expand Diff:左邊文件更新為時間上比當前版本更早的一個版本。
右 Shrink Diff
右 Expand Diff:右邊文件更新為時間上比當前版本更晚的一個版本。
Restore this configuration:用某個歷史版本的配置信息覆蓋當前的配置信息。
乍一看讓人倍感淩亂的按鈕,在細看之下發現每個按鈕的功能都不可替代。它們組合在一起可以讓我們方便的對比文件的不同版本。並且可以輕松的把配置回滾到某個歷史時刻。
Job Config History 視圖
和 Agent Config History 視圖類似,Job Config History 視圖提供了 Job 配置的歷史版本管理界面。在 Job 的信息界面點擊 “Job Config History”即可打開,具體功能和使用方法和 Agent Config History 視圖相同,因而不再贅述。
對於 Job Config,Job Configuration History 插件提供的另一個有用功能是在 Build 的歷史記錄中顯示配置文件的變化記錄:
從上圖中我們可以清楚的看到具體某次 Build 時配置文件發生了變化,點擊小圖標還能看到配置文件變化的具體內容:
這能夠極大的提高我們調試配置文件時的生產力,尤其是當錯誤發生時,我們可以立即定位是哪些配置的變化導致 Build 失敗了。
實現原理
Job Configuration History 是一款非常實用的插件,我們不禁會好奇,它是如何實現的呢?
答案可能會讓人有點失望,因為它的思路很簡單:當配置發生變化時,就把舊的配置文件復制一份存起來!舊配置文件的存放路徑默認就在 Jenkins 安裝目錄下的 config-history 目錄中:
不管是系統級別配置的歷史記錄,還是 Job、Agent 配置的歷史記錄,全都被按照一定的規則組織放置在這個目錄下。
總結
Job Configuration History 插件兼具低調、實用和設計簡單等優點,實為居家、旅行之必備良品!相信每一個 Jenkins 管理員都會對之愛不釋手。
Jenkins: 配置信息變更歷史