晒一晒Jenkins那些常用插件
作为 CI/CD 的调度中心,Jenkins 具有十八般武艺,目前已有 1700 多个插件,功能强大到似乎有点过分了。本文主要列出平时我们常用的插件。
以下这两个网站是 Jenkins 所有的插件及说明
Jenkins Plugins https://plugins.jenkins.io
Jinkins Plugins Wiki https://wiki.jenkins.io
Configuration
Jenkins CASC: configuration-as-code
将Jenkins的配置以Code的方式进行保存,方便Jenkins的迁移与重建。该插件对于敏捷管理Jenkins服务非常有用。
Parameter
Git Parameter
这是一个参数构建扩展,可以在构建的时候选择git的某一个分支来构建服务。
file-parameters
这个让Jenkinsfile支持将文件作为参数。
Hidden Parameter
参数化构建时,隐藏相关参数。可用于设置默认参数,同时通过API来传递参数。
Extended Choice Parameter
支持更多类型的参数,如单选,多选,多级单选,多级多选类型
Build Name and Description Setter
自定义每个Build名字
1 | buildName "${GERRIT_CHANGE_SUBJECT}" |
build user vars
为job注入用户信息环境变量
Variable | Description |
---|---|
BUILD_USER | Full name (first name + last name) |
BUILD_USER_FIRST_NAME | First name |
BUILD_USER_LAST_NAME | Last name |
BUILD_USER_ID | Jenkins user ID |
BUILD_USER_GROUPS | Jenkins user groups |
BUILD_USER_EMAIL | Email address |
Pipeline examples:
1 | stages { |
Environment Injector
在jenkins构建job时,可以自定义添加环境变量。
HashiCorp Vault
可以帮助Jenkins安全地管理和使用存储在Vault中的敏感信息。从Vault中获取密钥,并将其注入到Jenkins 构建环装中作为环境变量。这样可以安全地使用Vault中存储的敏感信息,而不需要将其直接写入Jenkins job中。
Agent
Docker
利用Docker容器动态创建Jenkins Slave。如果有了Kubernetes/Openshift集群,就不需要这个插件了。直接使用下面的Kubernetes插件。
jenkins非root启动的话,为了运行docker需要执行sudo chmod 777 /var/run/docker.sock
Kubernetes
这个插件可以将Jenkins Slave Node动态配置为Kubernetes集群上的pod。
Openshift
这个插件支持调度Openshift的对象,包括触发 BuildConfig、Deployment、Scale up a Deployment,给ImageStream打新的Tag,以及创建新的对象、删除已有对象等。
swarm
这个插件可以方便地为jenkins master添加slave agent.
Trigger
GitLab
配置Gitlab的相关认证,同时也支持GitLab的Webhook触发。
GitLab Hook
支持GitLab更好的触发。
Gogs WebHook
支持Gogs代码仓库的触发。
Tools
Maven
这个插件为Maven 2 / 3项目提供了高级集成功能。
Pyenv Pipeline
方便对python进行项目级别的环境隔离。
jenkins机器上需要安装python、pip、virtualenv
Python
这个插件支持在Jenkins的构建过程中执行Python脚本。
SonarQube Scanner
支持SonarQube的代码扫描。
Ansible
在构建任务中可以执行Ansible任务。
Publish Over SSH
通过SSH拷贝文件到目标机器,同时可以在目标机器上执行脚本
事先要在设置中添加目标机器的访问方式。
Condition BuildStep
可以使用 when 对 step 做判断
Http Request
向用户发送一个 HTTP / HTTPS 请求
Workspace Cleanup
每次 build 之前删除 workspace 目录下指定的文件
Pipeline Utility Steps
xvfb
为应用程序提供虚拟的 X server,主要用于界面自动化测试。
Job Manager
Job Generator
定义一个参数化的模板,通过这个模板快速的在 Jenkins 上创建出任务。
Parameterized Remote Trigger
触发远程的Jenkins server的Job
Job DSL Plugin
Jenkins Job DSL Plugin 可以让开发者通过 Groovy 脚本来定义和配置任务,随后插件会通过执行这些脚本来维护 Jenkins 任务。与 Job Generator 相比,它需要了解 Groovy。
Pipeline:Job
添加一个新的 Job 类型:Pipeline。
Multijob
把多个 Job 组织起来。
Parameterized Trigger
这是一个扩展型的插件,使各个 job 连接的时候可以传递一些 job 相关的信息。
Parameterized Scheduler
这个扩展是 Parameterized Trigger 的定时触发版
Join
这也是一个触发 job 的插件,亮点在于它触发 job 的条件是等待所有当前 job 的下游的 job 都完成才会发生。
Build Pipeline
这个插件提供一个构建流水线的视图。同时它提供了一个任务的手动触发器。
Testing
JUnit
展示JUnit单元测试报告。
TestNG Results
导出TestNG的测试报告。
JaCoCo
生成测试覆盖率的报告。
Performance
生成性能测试报告
需要在Jenkins机器上安装Taurus(开源负载测试工具和功能测试工具自动化框架)
Html Publisher
生成报告文档。参考资料:https://www.jianshu.com/p/8fb776f83243
Authorization
Role-based Authorization Strategy 用户角色
给Jenkins用户权限管理添加了角色组。
Matrix Authorization Strategy Plugin
为每个项目设置用户权限
Monitor
Build Monitor View
将 Jenkins 项目以一块看板的形式呈现。
Disk Usage
对Jenkins节点服务器磁盘的监控。
Monitoring 监控
监控 Jenkins 节点的 CPU、系统负载、平均响应时间和内存使用。
Prometheus Metrics
将Jenkins 服务及job监控指标统一由Prometheus采集。
a Jenkins performance and health overview for jenkinsci/prometheus-plugin
Alert
Email Extension
扩展了发送告警邮件的控制力度。可以定义邮件触发器、邮件内容、收件人。
Mailer
每次不稳定的构建都发送邮件通知。
单独发送邮件给对构建造成不良影响的责任人,会从 SCM 提交者人的信息中,拼出邮箱。
Sounds
这个插件能让 Jenkins 通过播放声音来发出通知。
Backup And Restore
Backup 备份 Jenkins
自定义备份 Jenkins Home 目录。
ThinBackup 轻量备份 Jenkins
轻量备份 Jenkins 上的配置与 Job
SCM Sync Configuration
备份与恢复secrets
备份
1 | cd /var/lib/jenkins |
恢复
1 | systemctl stop jenkins |
通过这种方法,新的Jenkins实例将能够正确解密和使用credentials.xml中的加密凭证。这是因为Jenkins使用master.key和hudson.util.Secret文件来加密和解密凭证信息。通过复制这些文件,新的Jenkins实例将拥有相同的加密密钥,从而能够正确读取加密的凭证。
预先要在全局配置中设置代码版本控制库的配置,每次创建或更新 job 配置时都会提示是否同步配置
Job Import Plugin
可方便地从一个Jenkins实例导入job到另一个实例。
参考文章 [jenkins常用插件汇总](http://www.cnblogs.com/honeybee/p/7877875.html) [Jenkins插件大全](https://blog.csdn.net/pansaky/article/details/80755739)