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 管理员都会对之爱不释手。

时间: 2024-10-13 05:25:17

Jenkins: 配置信息变更历史的相关文章

【转】Jenkins配置Git push后自动构建

[实战]Jenkins配置Git push后自动构建 # 前言   Jenkins 持续构建集成是软件版本迭代的一大利器,对于前端攻城狮来说,本身对服务器的接触就少,也并不愿意去做这个事.Jenkins持续构建省去了繁琐的服务器替换包的过程,同时有历史构建记录和每次构建的变更记录,这为我们回退和检查构建情况提供了便利.   本文假设你已经搭建了一些基础环境,如Git环境,Node环境等.如未处理请自行百度 # Jenkins配置步骤 1. 在Jenkins中进入你要配置自动构建的项目 要设置自动

jenkins配置角色访问

本文将介绍如何配置jenkins,使其可以支持基于角色的项目权限管理. 由于jenkins默认的权限管理体系不支持用户组或角色的配置,因此需要安装第三发插件来支持角色的配置,本文将使用Role Strategy Plugin,介绍页面:https://wiki.jenkins-ci.org/display/JENKINS/Role+Strategy+Plugin 一.配置插件 安装插件后,进入系统设置页面,配置如下: 官网上安全域设置为Servlet容器代理,实际操作发现Jenkins专有用户数

Jenkins 配置邮件通知

jenkins 是一个开源的自动化服务器.通过Jenkins,可以通过自动化加速软件开发过程.Jenkins管理和控制各种开发的生命周期过程,包括构建,文档,测试,包,阶段,部署,静态分析等等.您可以设置Jenkins来监视像SVN和Git这样的地方的任何代码更改,使用Ant和Maven等工具自动执行构建,启动测试等.在构建失败.构建不稳定等状态还可以发送邮件通知,现介绍一下如何在 Jenkins中配置实现邮件通知. Jenkins内置的邮件通知并不能够满足我们,因为它无法定义发送的邮件格式,无

利用zookeeper的发布/订阅模式实现配置动态变更

??ZooKeeper的Watcher事件机制可以说分布式场景下的观察者模式的实现.基于这个watcher事件机制,配合注册到特定的ZNode节点,可以实现java应用的配置运行时的变更.在学习zookeeper之前,听同事说配置可以在运行时动态变更,觉得不可思议.研习了zookeeper之后,实现这个功能是很easy的. ??发布/订阅系统设计起来无非两种模式,推和拉. 1. 推模式,服务端负责把变更的数据推给订阅的客户端.Web即时通信里的Comet技术便可以实现这种功能. 2. 拉模式,也

Jenkins配置分布式部署

即Jenkins安装后的配置总结.仅供参考 登录Jenkins,http://localhost:8080 Jenkins新建完成后需要配置Jenkins的登录权限和节点: 一.增加登录权限: 修改Jenkins为输入用户名和密码登录: 点击左侧的系统管理--用户管理--新建用户,建立用户后重新打开Jenkins网址,点击右上角登录按钮进行登录,非登录模式,只能查看Jenkins配置,不能做任何修改. 二.增加节点 点击左侧的系统管理--管理节点--新增节点,输入节点名称,建议使用sever n

Jenkins配置基于角色的项目权限管理--转

本文将介绍如何配置jenkins,使其可以支持基于角色的项目权限管理. 由于jenkins默认的权限管理体系不支持用户组或角色的配置,因此需要安装第三发插件来支持角色的配置,本文将使用Role Strategy Plugin,介绍页面:https://wiki.jenkins-ci.org/display/JENKINS/Role+Strategy+Plugin 一.配置插件 安装插件后,进入系统设置页面,配置如下: 官网上安全域设置为Servlet容器代理,实际操作发现Jenkins专有用户数

使用Gradle构建构建一个Java Web工程及持续集成环境Jenkins配置

安装Eclipse插件——Buildship 什么是Buildship? Buildship能方便我们通过Eclipse IDE创建和导入Gradle工程,同时还能执行Gradle任务. Eclipse上安装Buildship 建议直接去Eclipse market处下载,简单方便,如下图: Buildship的更多信息 请参考以下链接,有教程,比较简单, 主要内容: 如何导入Gradle工程, 如何创建Gradle工程, 如何执行Gradle任务, 等... http://projects.e

jenkins 配置子项目发版

刚接手公司的项目虽说也多模块.分布式部署,但是模块之间却没有被父项目管理,每个模块是一个小的父子项目,管理了两个子项目,单独维护着当前模块内使用的依赖,版本等,模块之间自然有很多重复引用的依赖,我不知道当初为什么这样创建,在我集成apollo配置中心的时候我改掉了这样依赖结构,所有的模块的依赖都和版本都统一由一个父pom管理,这也为后面埋下一个坑. 测试环境上线的时候,使用的jenkins自动部署,原以为更换了源码路径就可以了,但是发版错误提示没有定义版本号,×××的是要部署的模块代码,其他模块

jenkins 配置maven

一.Maven是什么? Maven是一个项目管理和综合工具.Maven提供了开发人员构建一个完整的生命周期框架.开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期. 在多个开发团队环境时,Maven可以设置按标准在非常短的时间里完成配置工作.由于大部分项目的设置都很简单,并且可重复使用,Maven让开发人员的工作更轻松,同时创建报表,检查,构建和测试自动化设置. 二.安装maven 安装maven,需要有jdk环境支持才行. 网上的大部分教程,jdk和mave