特别说明:本文是在原文基础上的改写和添加,但总体不影响原文表达,特此说明。

原文链接 - Jenkins 高效插件推荐 | 运维生存时间

前言

开源版本的Jenkins具有三大能力:

  • Master-Slave的分布式构建调度能力
  • Pipeline编排能力
  • 强大的开源生态(插件)能力

2017年4月,Jenkins创始人KK(Kohsuke Kawaguchi )来到中国,交流中他也明确表示Jenkins的成功主要取决于其开源生态系统,Jenkins有1400多个插件可供使用。

因为有开源的插件生态系统的存在,Jenkins要用得好,插件一定是不能少的,需要我们充分发现和使用插件来实现我们的需求,而不是重复造轮子,自己去实现。

但是面对林林总总的插件,到底该怎么选?

我的常用需求有哪些插件可以满足,笔者根据以往在企业中管理Jenkins的经验推荐如下常用的插件列表,希望大家基于Jenkins及其插件生态实现自己的持续交付与DevOps平台。

1 - 用户及权限

Jenkins 用户权限管理是Jenkins Administration中非常很重要的环节,由于大部分企业都会有自己的域控管理,所以和LDAP集成并基于用户组实现权限模型设计与管理是企业级Jenkins实践的重要内容。

LDAP
https://plugins.jenkins.io/ldap
允许使用LDAP对用户进行认证,LDAP 服务器可以为Active Directory 或者 OpenLDAP。 Active Directory
https://plugins.jenkins.io/active-directory,
允许使用Active Directory对用户进行认证,同时结合诸如Matrix Authorization Strategy插件,可以识别用户所在的所有用户组,对用户授权进行灵活配置。
基于Windows Active Directory进行域管理的企业,推荐采用Active Directory。 GitHub Authentication
https://plugins.jenkins.io/github-oauth
这个插件提供了使用GitHub进行用户认证和授权的方案。 Matrix Authorization Strategy
https://plugins.jenkins.io/matrix-auth
提供了基于矩阵的授权策略,支持全局和项目级别的配置。 Role-based Authorization Strategy
https://plugins.jenkins.io/role-strategy,
提供了一种基于角色(Role)的用户权限管理策略,支持创建global角色、Project角色、Slave角色,以及给用户分配这些角色。
是最常用的Jenkins权限策略和管理插件。

2 - 代码管理

Jenkins 项目中配置Source Code Management 去下载代码进行构建任务,是非常普遍的应用场景。

Jenkins插件支持很多SCM的系统,使用最常见的是Git 和SVN。

Git
https://plugins.jenkins.io/git
支持使用Github、GitLab、Gerrit等系统管理代码仓库。 Subversion
https://plugins.jenkins.io/subversion
支持Subversion系统管理源代码,功能包括监视 Subversion 仓库变更来触发新的构建、自动更新执行机工作目录等。 Maven
https://plugins.jenkins.io/maven-plugin
对 Maven 工程提供了更丰富的功能,包括:自动配置报告插件(如 JUnit、Findbugs 等),增量构建,并行构建等。

3 - 项目及视图

Jenkins中对Project 和 view的管理,是用户日常工作中使用很多的功能。

Folder
https://plugins.jenkins.io/cloudbees-folder,
支持用户使用目录管理项目,目录支持嵌套,并且支持目录中创建视图。 List view
Jenkins 默认支持List类型的视图,用户可以创建List视图过滤所关心的项目。 Sectioned View
https://plugins.jenkins.io/sectioned-view,
支持一种新的视图,视图可以分为多个部分,每部分可以单独配置显示所选择的项目信息。 Nested View
https://plugins.jenkins.io/nested-view,
支持一种新的视图,以目录图标显示所包含的子视图,每个子视图显示所选项目信息。 Build Pipeline
https://plugins.jenkins.io/build-pipeline-plugin
提供了一种Build Pipeline 视图,用于显示上、下游项目构建的关系。 Performance Plugin
https://plugins.jenkins.io/performance
可以读取和解析测试框架输出的报告,并且在 Jenkins 上绘制性能和稳定性相关的图表。

4 - 构建触发

Jenkins支持多种Build 触发方式,尤其一些自动化触发方式非常有用

Build periodically
Jenkins 内置功能,可以设置类似crontab时间,周期性地自动触发构建。 Poll SCM
Jenkins 内置功能,支持周期性地在后台检查所配置的SCM有没有更新,只有当有代码更新时才会触发构建。 Trigger builds remotely (e.g., from scripts)
Jenkins 内置功能,远程触发构建,通过设置token可以支持远程脚本中触发Jenkins构建。 Gerrit Trigger
https://plugins.jenkins.io/gerrit-trigger
将Jenkins集成到Gerrit code review中,支持Jenkins配置Gerrit服务器等信息,实现Gerrit event 触发Jenkins 构建。 GitLab
https://plugins.jenkins.io/gitlab-plugin
将Jenkins 集成到GitLab web hook中,支持Gitlab 分支及Merge Request等相关事件触发Jenkins构建。 GitHub Integration
https://plugins.jenkins.io/github-pullrequest
将Jenkins集成到GitHub中,支持Gitgub分支及Pull requests 触发Jenkins 构建。 JIRA Trigger
https://plugins.jenkins.io/jira-trigger
将Jenkins集成到Jira WebHooks中,支持Jira issue的状态等变化时触发Jenkins构建。

5 - 构建参数

Jenkins除了支持普通的参数类型(布尔型、字符串型、多行文本型、选择型和文件型 )外,还有一些插件支持更加丰富实用的参数类型,比如参数间动态关联、多层级参数、隐藏参数等 。

nodelabelparameter
https://plugins.jenkins.io/nodelabelparameter
增加了一个新的参数类型,Node 和 Label,从而使用户通过参数可以选择项目构建运行的节点。 其他插件
- https://plugins.jenkins.io/hidden-parameter
- https://plugins.jenkins.io/extended-choice-parameter
- https://plugins.jenkins.io/validating-string-parameter
- https://plugins.jenkins.io/extensible-choice-parameter
- https://wiki.jenkins.io/display/JENKINS/Active+Choices+Plugin

6 - 构建任务及环境

围绕构建任务的一些实用功能。

Timestamper
在Jenkins控制台增加时间输出,可以方便定位。 Publish Over SSH
将构建产物或者指定命令下发到指定主机。 Workspace Cleanup
https://plugins.jenkins.io/ws-cleanup
支持在构建前后 删除或者部分删除workspace description setter
https://plugins.jenkins.io/description-setter
支持正则表达式匹配构建log输出,设置构建的描述 build-name-setter
https://plugins.jenkins.io/build-name-setter
支持设置构建的显示名字,而不是默认的为#1,#2,……,#buildnum Environment Injector
https://plugins.jenkins.io/envinject
支持在构建任务的不同阶段插入环境变量,并且在构建结束导出所有的环境变量等功能。 Build Pipeline plugin
https://github.com/jenkinsci/build-pipeline-plugin
可以让整个持续集成流程变得非常直观:项目管理员针对系统持续集成步骤设置一系列关联的任务,任务之间可以设置不同的触发条件,以确认何时需要人工介入。 JIRA
https://plugins.jenkins.io/jira
可以让 Jenkins 任务和 JIRA 集成起来,项目管理者可以通过 JIRA 了解项目进度,开发者也可以通过该插件直接更改 JIRA 上的 issue 状态。

7 - 构建通知

把构建状态及时地通知用户。Jenkins支持多种主动和被动的通知方式。

Mailer
https://plugins.jenkins.io/mailer
支持基本的邮件通知功能,比如构建失败和构建恢复成功可以发送邮件通知给相关人员。 Email Extension
https://plugins.jenkins.io/email-ext
支持定制邮件内容,触发条件以及邮件接收者,功能比基本邮件通知要灵活强大的多。 Slack Notification
https://plugins.jenkins.io/slack
支持把构建结果推送到Slack channel。

8 - 容器化

Jenkins的Master-Slave架构实现了分布式构建,可以充分的横向扩展Slave来提升构建能力,将Slave容器化是目前主流的构建环境标准化、集群化和弹性化的方式。

docker-plugin
https://plugins.jenkins.io/docker-plugin
可以配置docker host ,从而动态的提供Jenkins Agent(Slave),运行构建后再销毁这个slave。 kubernetes
https://plugins.jenkins.io/kubernetes
Jenkins 对执行机的管理一直比较弱,无法做到快速的扩容和缩容。
Kubernetes Plugin 通过引入 Kubernetes 的容器编排能力,让 Jenkins 执行机运行在 Kubernetes 环境中。
支持利用Kubernetes cluster 动态的提供Jenkins Agent(Slave),利用Kubernetes 调度机制来优化Jenkins 负载等。

9 - Admin相关插件

Configuration Slicing
https://plugins.jenkins.io/configurationslicing
支持批量修改项目配置 SCM Sync Configuration Plugin
https://plugins.jenkins.io/scm-sync-configuration
可以自动将 Jenkins 任务配置同步到版本管理系统中。
还可以跟踪配置的变更情况,让项目管理人员能够清晰的了解任务的修改情况。 Mask Passwords
https://plugins.jenkins.io/mask-passwords
支持遮挡构建log输出的password等敏感信息 Backup
https://plugins.jenkins.io/backup
添加备份功能到Jenkins management

Jenkins - 【转】高效插件推荐的更多相关文章

  1. Jenkins系列之-—DevOps高效插件推荐【转】

    基于Jenkins及其插件生态实现自己的持续交付与DevOps平台. jenkins 插件官网 Blue Ocean Jenkins2.7以后可安装,是Jenkins的一种新视图,能够通过图形化的界面 ...

  2. Android Studio开发-高效插件强烈推荐

    Android Studio开发-高效插件强烈推荐 现在Android的开发者基本上都使用Android Studio进行开发(如果你还在使用eclipse那也行,毕竟你乐意怎么样都行).使用好And ...

  3. 工欲善其事必先利其器之Xcode高效插件和舒适配色

    功能强大的Xcode再配上高效的插件,必会让你的开发事半功倍.直接进入正题. Xcode插件安装方式: 1.github下载插件然后用xcode打开运行一遍,然后重启xcode. 2.安装插件管理Al ...

  4. 【IDEA】intellij idea 插件推荐

    CSDN 2016博客之星评选结果公布    [系列直播]零基础学习微信小程序!      "我的2016"主题征文活动   博客的神秘功能 [IDEA]intellij idea ...

  5. VS2015 使用及插件推荐

      环境搭建与插件推荐 Cpp in Win10 x64 vs2015 + Resharper/Visual Assist X vs2015Pro: Download or see BaiDu 中文专 ...

  6. 让网站动起来!12款优秀的 jQuery 动画插件推荐

    如今,大多数设计师和开发人员被要客户要求开发动态的网站.创造视觉震撼和醒目的动态网站是艰巨的任务,因为它需要大量的努力和创造力.在网络上有大量的工具和插件可用于创建网站动画.许多开发人员正在使用 HT ...

  7. Webstorm功能详解及插件推荐

    Web前端开发神器--Webstorm不用多介绍,强大的智能提示只是它的一个功能特性,它还具有许多有用的特性,比如版本控制.本地历史.即时模板等.Webstorm还内置了对 SASS.NodeJS.C ...

  8. 12款最佳的 WordPress 语法高亮插件推荐

    语法高亮工具增强了代码的可读性,美化了代码,让程序员更容易维护.语法高亮提供各种方式由以提高可读性和文本语境,尤其是对于其中可以结束跨越多个页面的代码,以及让开发者自己的程序中查找错误.在这篇文章中, ...

  9. Jenkins离线下载插件,并安装

     在jenkins点击插件进入wiki,然后点击列表下载一个版本的包 安装是,选择高级的tab,下面就有安装: 还有一种方法,就是装VPN,在高级设置VPN地址.

随机推荐

  1. TCP_Wrappers访问控制

    一.TCP_Wrappers简介 对有状态连接的特定服务进行安全检测并实现访问控制,它以库文件形式实现,某进程是否接受libwrap的控制取决于发起此进程的程序在编译时是否针对libwrap进行编译的 ...

  2. 【每日一包0015】gradient-string

    [github地址:https://github.com/ABCDdouyae...] gradient-string 用于在终端打印出好看的渐变文字 普通用法 console.log(gradien ...

  3. JMeter性能测试,完整入门篇(转)

    原文转自:https://blog.csdn.net/lovesoo/article/details/78579547 Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件 ...

  4. 列表控件 ListBox、ComboBox

    列表控件可以当作容器,内部可以有RadioButton.CheckBox.StackPanel等.即Items类型多样. ListBox,多个Item可被选中:ComboBox,只能有一个Item被选 ...

  5. 《剑指offer》算法题第九天

    今日题目: 整数中1出现的次数 把数组排成最小的数 丑数 第一个只出现一次的字符位置 今天的题目相对比较难,特别是第1题和第3题很考验数学功底,下面我们一题一题来看看. 1.整数中1出现的次数 题目描 ...

  6. 读狼书,重温flask

    最近做个简单的MIS系统, 趁机读<flask web 开发实战 入门.进阶与原理解析> 李辉.  由于是flask官方团队的人写的.方方面面都很细致. 很多写法.配置,和之前0.X时代也 ...

  7. MessagePack Java Jackson Dataformat 在 Map 中不使用 String 为 Key 的序列化

    当你希望在 Map 中不使用 String 为 Key,那么你需要使用 MessagePackKeySerializer 来为 key 进行序列化. 本测试方法,可以在 https://github. ...

  8. Ubuntu安裝python3.7版

    https://blog.csdn.net/u014775723/article/details/85213793 failed to fetch ppa:https://blog.csdn.net/ ...

  9. [CSP-S模拟测试]:二叉搜索树(DP+贪心)

    题目传送门(内部题99) 输入格式 第一行一个整数$n$,第二行$n$个整数$x_1\sim x_n$. 输出格式 一行一个整数表示答案. 样例 样例输入: 58 2 1 4 3 样例输出: 数据范围 ...

  10. C++入门经典-例8.5-多重继承

    1:C++允许子类从多个父类继承公有的和受保护的成员,这称为多重继承. 2:多重继承的定义.多重继承有多个基类名称标识符,其声明形式如下: class 派生类名标识符:[继承方式] 基类名标识符1,. ...