1. 程式人生 > >Jenkins: 配置信息變更歷史

Jenkins: 配置信息變更歷史

錯誤 它的 分享 fig his 組件 ble 歷史版本 expand

像 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: 配置信息變更歷史