Jenkins 系列: (三) Jenkins 插件

Jenkins的可扩展性很好,很大程度上取决于它的插件生态系统。目前,Jenkins官方插件仓库有1500多个插件,涵盖代码,构建,测试,部署,工具集成等 方方面面,基本可以满足业务需求。所以,Jenkins用的好,插件必不可少。

以下把常用的插件推荐个大家,希望大家基于Jenkins及其插件生态能够实现自己的持续交付平台。

用户及权限

Jenkins 用户权限管理是Jenkins Administration中非常很重要的环节。

  • LDAP https://plugins.jenkins.io/ldap

         这个插件允许使用LDAP对用户进行认证,LDAP 服务器可以为Active Directory或者 OpenLDAP

  • Active Directory https://plugins.jenkins.io/active-directory

        这个插件允许使用Active Directory对用户进行认证,同时结合诸如Matrix AuthorizationStrategy插件,可以识别用户所在的所有用户组,对用户授权进行灵活配置。

  • GitHub Authentication https://plugins.jenkins.io/github-oauth

        这个插件提供了使用GitHub进行用户认证和授权的方案

  • Gitlab Authentication https://plugins.jenkins.io/gitlab-oauth

        这个插件提供了使用GitLab进行用户认证和授权的方案

  • Matrix Authorization Strategy https://plugins.jenkins.io/matrix-auth

        这个插件提供基于矩阵的授权策略,支持全局和项目级别的配置

  • Role-based Authorization Strategy https://plugins.jenkins.io/role-strategy

        这个插件提供了一种基于角色(Role)的用户权限管理策略,支持创建global角色、Project角色、Slave角色,以及给用户分配这些角色。


代码管理

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

  • Git https://plugins.jenkins.io/git

         支持使用Github、GitLab、Gerrit等系统管理代码仓库

  • Subversion https://plugins.jenkins.io/subversion

        支持Subversion系统管理源代码


项目及视图

JenkinsProject 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 视图,用于显示上、下游项目构建的关系。


构建触发

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

  • Build periodically

        Jenkins 内置功能,可以设置类似crontab时间,周期性的自动触发构建

  • Poll SCM

        Jenkins 内置功能,类似Build periodically,可以设置类似crontab时间,不同的是不是直接进行构建,而是周期性的后台检查所配置的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构建


构建参数

Jenkins除了支持普通的参数类型(Boolean,String,Multi-lineString, Choice, File)外,还有一些插件支持更加丰富实用的参数类型

  •  https://plugins.jenkins.io/nodelabelparameter

          这个插件增加了一个新的参数类型,Node 和 Label,从而使用户通过参数可以选择项目构建运行的节点

  •  https://plugins.jenkins.io/hidden-parameter
         隐藏参数,项目中可以定义,构建时不显示
  •  https://plugins.jenkins.io/extended-choice-parameter
         扩展choice 类型参数
  •  https://plugins.jenkins.io/validating-string-parameter
         可以验证String类型参数格式
  •  https://plugins.jenkins.io/extensible-choice-parameter
           扩展choice 类型参数
  •  https://wiki.jenkins.io/display/JENKINS/Active+Choices+Plugin
           扩展choice 类型参数


构建任务及环境

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

  • 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

        这个插件支持在构建任务的不同阶段插入环境变量,并且在构建结束导出所有的环境变量等功能。


构建通知

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

  • Mailer  https://plugins.jenkins.io/mailer

        这个插件支持基本的邮件通知功能,比如构建失败和构建恢复成功可以发送邮件通知给相关人员。

  • Email Extension https://plugins.jenkins.io/email-ext

        这个插件是邮件通知的扩展,支持定制邮件内容,触发条件以及邮件接收者,功能比基本邮件通知要灵活强大的多。

  • Slack Notification https://plugins.jenkins.io/slack

         这个插件支持把构建结果推送到Slack channel。


容器化Slave

  •  https://plugins.jenkins.io/docker-plugin

         这个插件可以配置docker host ,从而动态的提供Jenkins Agent(Slave),运行构建后再销毁这个slave。

  • https://plugins.jenkins.io/kubernetes

         这个插件支持利用Kubernetes  cluster 动态的提供Jenkins AgentSlave),利用Kubernetes 调度机制来优化Jenkins负载等。

 

Admin相关插件

  • Configuration Slicing  https://plugins.jenkins.io/configurationslicing

        这个插件支持批量修改项目配置

  • Mask Passwords https://plugins.jenkins.io/mask-passwords

        这个插件支持遮挡构建log输出的password等敏感信息

  • Backup https://plugins.jenkins.io/backup

        这个插件添加备份功能到Jenkins management


你可能感兴趣的:(jenkins)