开源版本的Jenkins 具有三大能力:Master-Slave的分布式构建调度能力、Pipeline编排能力、强大的开源生态(插件)能力。

2017年4月,Jenkins创始人KK(Kohsuke Kawaguchi )来到中国,交流中他也明确表示Jenkins的成功主要取决于其开源生态系统,Jenkins有1400多个插件可供使用。因为有开源的插件生态系统的存在,Jenkins要用得好,插件一定是不能少的,需要我们充分发现和使用插件来实现我们的需求,而不是重复造轮子,自己去实现。

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

用户及权限

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

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

代码管理

Jenkins 项目中配置Source Code Management 去下载代码进行构建任务,是非常普遍的应用场景。Jenkins插件支持很多SCM的系统,使用最常见的是Git 和SVN。

项目及视图

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

  • l  Folder https://plugins.jenkins.io/cloudbees-folder,这个插件支持用户使用目录管理项目,目录支持嵌套,并且支持目录中创建视图。
  • l  List view Jenkins 默认支持List类型的视图,用户可以创建List视图过滤所关心的项目。
  • l  Sectioned View https://plugins.jenkins.io/sectioned-view,这个插件支持一种新的视图,视图可以分为多个部分,每部分可以单独配置显示所选择的项目信息。
  • l   Nested View https://plugins.jenkins.io/nested-view,这个插件支持一种新的视图,其表示直接显示项目,而是以目录图标显示所包含的子视图,每个子视图显示所选项目信息。
  • l  Build Pipeline https://plugins.jenkins.io/build-pipeline-plugin,这个插件提供了一种Build Pipeline 视图,用于显示上、下游项目构建的关系。

构建触发

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

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

构建参数

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

  • l  nodelabelparameter  https://plugins.jenkins.io/nodelabelparameter,这个插件增加了一个新的参数类型,Node 和 Label,从而使用户通过参数可以选择项目构建运行的节点。
  • l  其他插件不一一列举,可以查看插件说明

Ø  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

构建任务及环境

围绕构建任务,有许多小的插件,却提供了一些实用的功能

构建通知

把构建状态及时地通知用户,是Jenkins的一个必不可少的功能。Jenkins支持多种主动和被动的通知方式。

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

容器化Slave

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

Admin相关插件

jenkins常用插件汇总:
Build-timeout Plugin:任务构建超时插件
Naginator Plugin:任务重试插件
Build User Vars Plugin:用户变量获取插件
Build Pipeline Plugin View :Pipeline 管道流图表展示插件

Build Flow Plugin:工作流插件,支持DSL脚本定义工作流
Build Graph View Plugin:build Flow插件视图(安装后需要重新才能生效)
Multijob Plugin:多任务插件
Build-timeout Plugin:job构建超时插件
Build Timestamp Plugin :任务log时间戳插件,使得job log的每次输出前面都增加当时的时间
Parameterized Trigger Plugin:这是一个扩展型的插件,使各个job连接的时候可以传递一些job相关的信息
Join Plugin:这也是一个触发job的插件,亮点在于它触发job的条件是等待所有当前job的下游的job都完成才会发生。
Files Found Trigger:检测指定的目录,如果发现指定模式的文件则启动build。
BuildResultTrigger Plugin:根据其他的job的成功或失败来启动此build。
Publish Over SSH Plugin:通过ssh发布文件
Rebuild Plugin:重新执行插件
ws-cleanup Plugin :workspace清理插件
Cron Column Plugin: 通过定时任务例行的运行一些job
Job Configuration History Plugin:使用心得:使job具备版本管理的能力,diff和rollback功能更是非常赞
HTTP Request Plugin:使用心得:在构建前后可以通过该插件以http形式调用各种api接口实现和内部系统的联动
Periodic Backup:使用心得:备份是运维一个系统必须要保障的事情,该插件的恢复功能可能不可用,需要手工进行,好处在于可以定时备份
Job Import Plugin:使用心得:可以快速导入其他jenkins集群的已有job,需要认证的jenkins系统导入需要提供凭证才可以
Status Monitor Plugin:构建状态插件
Build Monitor View :使用心得:基于该插件可以实现dashboard功能
Build Environment Plugin:构建环境插件,可以进行构建环境比较。
FTP插件:
Monitoring:Monitoring of Jenkins

基础依赖插件:
jQuery Plugin:jQuery插件

 

转:https://www.cnblogs.com/honeybee/p/7877875.html

http://www.ttlsa.com/auto/jenkins-plugin-recommend/

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐