作者:sparkdev

出处:http://www.cnblogs.com/sparkdev/

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

推荐阅读

  • Spring Boot整合消息中间件RabbitMQ

  • Spring Cloud配置中心获取不到最新配置信息的问题

  • 总是听别人说响应式布局,原来这么简单

  • 《程序员健康指南》读书笔记

  • 博客搭建攻略(三):创造收益

长按指纹

一键关注

Jenkins:配置信息变更历史相关推荐

  1. 微服务架构开发实战:分布式消息总线,实现配置信息的自动更新

    实现配置信息的自动更新 在上一篇文章中节演示了集成Spring Cloud Bus 的过程.在示例中,当微服务实例启动的时候,可以去加载最新的配置信息.当时这种做法有一定的局限性,即只有在应用启动的过 ...

  2. 持续集成平台Jenkins配置方法介绍

    持续集成(Continuous integration,CI)是软件开发和发布流程中最重要的组成部分,有利于加快开发进度.Jenkins是常用的持续集成管理工具,本文将简要介绍Jenkins持续集成工 ...

  3. Leangoo看板Jenkins配置指南

    介绍: Jenkins 是一个独立的开源软件项目,是基于 Java 开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能.它可以用于自动化运行各种任 ...

  4. Nacos 原理:推+拉打造客户端配置信息的实时更新

    点击蓝色"程序猿DD"关注我哟 来源:逅弈逐码 上篇文章 <Nacos 配置中心原理>我和大家分析了 Nacos 的配置中心原理,主要分析了 Nacos 客户端是如何感 ...

  5. ios jenkins配置_Jenkins + TestNG 实现自助式自动化测试平台

    摘要: 本文介绍了如何使用 Jenkins 和 TestNG 实现满足复杂测试需求的"自助式"自动化测试平台.该方案以 Jenkins 作为平台的基础,结合功能强大的插件及系统配置 ...

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

    本文将介绍如何配置jenkins,使其可以支持基于角色的项目权限管理. 由于jenkins默认的权限管理体系不支持用户组或角色的配置,因此需要安装第三发插件来支持角色的配置,本文将使用Role Str ...

  7. jenkins配置git出现ERROR: Timeout after 10 minutes 同时命令行出现:Enter passphrase for key 的提示

    在jenkins配置git,如下: 配置好之后,点击立即构建,等了很久出现如下错误: ERROR: Error fetching remote repo 'origin' hudson.plugins ...

  8. SpringBoot基础篇配置信息之配置刷新

    2019独角兽企业重金招聘Python工程师标准>>> 更多Spring文章,欢迎点击 一灰灰Blog-Spring专题 配置的刷新,从第一篇就提出了这个问题,但是一直都没有说到,那 ...

  9. thinkphp中配置信息的二维数组设置与使用

    有时候配置信息是二维数组 1.配置 <?php return array (// 阿里大鱼短信配置'dayu_appkey'=>'xxx','dayu_secretKey'=>'xx ...

最新文章

  1. 从一道常见习题的自然延伸谈起
  2. 班尼机器人如何代理_如何学习电商短视频拍摄剪辑
  3. 第9条:用生成器表达式来改写数据量较大的列表推导式
  4. JRE与JDK,SDK的区别
  5. python基础===八大排序算法的 Python 实现
  6. 【CF487E】Tourists【圆方树】【树链剖分】【multiset】
  7. 学习编程,英语很重要!!
  8. 吴恩达机器学习:逻辑回归
  9. SQL Server备份账号和密码
  10. 利用grep-console插件使Intellij idea显示多颜色调试日志
  11. 《WINDOWS游戏编程之从零开始》第三章学习笔记
  12. 浪潮服务器网卡驱动丢失怎么修复,电脑丢失网卡驱动,学会这一招,轻松搞定...
  13. 如何设置.net控件SplitContainer平均分配
  14. (CVPR-2020)Strip Pooling:重新思考场景解析的空间池化
  15. 德勤:迈向移动操作系统—建立城市交通通用语言
  16. dex文件格式------header_item解析
  17. [CF1463F]Max Correct Set
  18. vue项目手机端适配
  19. Appium:配置华为手机鸿蒙HarmonyOS系统参数
  20. 16个免费高质量无版权图片视频网站分享,可以商用!

热门文章

  1. 全文搜索引擎 Elasticsearch 简介 及其与 Python 的对接实现
  2. 根证书和中间证书的区别
  3. mpp 项目管理文件 打开方法
  4. tomcat 目录配置 appBase和docBase 简介
  5. linux c pid获取进程名 进程名获取pid
  6. linux c openssl rsa 加解密
  7. Composer PHP依赖管理
  8. Linux C编程--网络编程1--字节顺序和字节处理函数
  9. 编程之美 2.4 1的数目
  10. 微软sql服务器关闭了会怎样,sql server 服务启动后 自动关闭 求