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

原文链接 - 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. 简单的了解Servlet的使用

    具体使用: 1.实现 Servlet 接口 2.实现 Servlet 接口中 所有的方法 package com.ou.test; import javax.servlet.*; import jav ...

  2. spark 三种数据集的关系(二)

    一个Dataset是一个分布式的数据集,而且它是一个新的接口,这个新的接口是在Spark1.6版本里面才被添加进来的,所以要注意DataFrame是先出来的,然后在1.6版本才出现的Dataset,提 ...

  3. 2019CCPC秦皇岛赛区(重现赛)- I

    链接: http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1009&cid=872 题意: 在 dota2 中有一个叫做祈求 ...

  4. 【Wince-ListView】Wince中的 ListView怎么显示网格?

    using System.Runtime.InteropServices; using System.Windows.Forms; namespace CETEST { public class Co ...

  5. AVPython:Python Support for ArcView

    AVPython embeds the Python programming language within ArcView GIS 3.x. This project will also encom ...

  6. Spring Boot教程(四十一)LDAP来管理用户信息(1)

    LDAP简介 LDAP(轻量级目录访问协议,Lightweight Directory Access Protocol)是实现提供被称为目录服务的信息服务.目录服务是一种特殊的数据库系统,其专门针对读 ...

  7. vue中render: h => h(App)的详细解释

    2018年06月20日 10:54:32 H-L 阅读数 5369   render: h => h(App) 是下面内容的缩写:   render: function (createEleme ...

  8. Xpath中text(),string(),data()的区别

    摘要: 在XPath中,经常使用text()和string(),而我一般都是想到哪个用哪个,究竟他们之间有什么不同,没有在意过. 本质区别 text()是一个node test,而string()是一 ...

  9. shell 之 用linux定时任务crontab和watchdog.sh脚本做软件看门狗

    1.简介 看门狗的作用是定期检测服务正常运行,如果发现服务不在了,会重新拉起服务:linux中可以利用系统的定时任务功能crontab定期的去执行watchdog.sh脚本,而watchdog.sh脚 ...

  10. 输出变量的界值(int、float、long.....)

    //整型.浮点型变量表示的关键字,并给出它们各自的界值 #include<iostream> #include<climits> //包含整型数据范围的头文件 #include ...