jenkins 常用的插件介绍
- Build Pipeline Plugin:灰度发布
使用心得:将多个job进行串联,从而实现分级发布的能力。每个job完成之后,可以进行效果检查,通知关联系统等等功能,从而实现了一套较为完整的全流程自动变更机制
- Conditional BuildStep:策略判断
使用心得:对于任务执行,增加了很多的触发条件判断,从而让任务执行变得更加智能
- Ansible Plugin:批量执行
使用心得:通过jenkins+ansbile可以实现任务的批量执行,可以不使用ansible模式,直接在shell里面调用ansible即可,但是需要在ansible部署的机器上设置好主机列表 ;也可以基于ansible模式进行操作,两种截图均有提供
- Build timeout plugin:超时控制
使用心得:设置Job运行的最大耗时,避免异常后无人介入导致Job持续运行占用资源,最小超时时间为3min
- Cron Column Plugin:定期执行
使用心得:通过定时任务例行的运行一些job,实现例行的巡检,流量切换,预案演练,重启等操作
- Job Configuration History Plugin:变更查询
使用心得:使job具备版本管理的能力,diff和rollback功能更是非常赞
- HTTP Request Plugin:跨平台调用
使用心得:在构建前后可以通过该插件以http形式调用各种api接口实现和内部系统的联动
- Parameterized Trigger plugin:参数传递
使用心得:触发下一个job时,将上一个job的参数传递下去,利用该特性,也可以将执行的Slave作为参数进行传递,从而解决在公有云多租户场景下JOB通用的问题。通过build on the same node即可解决所有JOB都在特定的slave上执行。需要注意的是,current build parameters仅仅传递该JOB编译用到的参数,而非上一个JOB传递下来的所有参数,在多级传递中需要注意。
- Git plugin
使用心得:通过版本库获取代码,从而减少在Jenkins上大量编写脚本,从而带来的较高的维护成本,正确的使用Jenkins的方式应该是将大量的业务逻辑放在版本库中,Jenkins只是胶水作用,将各种操作粘合在一起从而让任务能够顺利完成。
- Job Import Plugin
使用心得:可以快速导入其他jenkins集群的已有job,需要认证的jenkins系统导入需要提供凭证才可以
- SSH Slaves plugin:总控方式管理公有云的多个租户
使用心得:通过该插件可以将Master上的JOB在Slave的机器上执行,Master通过SSH的方式连接Slave。主要用途有两种,第一种是降低Master的负载,在Master的JOB较多的时候使用;第二种是将Slave当做代理,用于管理Master无法直接联通的网络环境,如多个公有云租户。Master以SSH方式连接Slave时候,建议使用信任关心处理,这样可以减少很多的问题和安全风险 。同时,Master和Slave的Jenkins——Home变量要一致,否则会导致部分任务执行异常。调整了Slave的部署目录,需要断开Slave,然后重新连接才能生效jenkins-home。
- Copy To Slave Plugin:Slave集群数据推送
使用心得:通过该插件,Master可以在任务执行前先以SSH方式登录到Slave上,然后将指定的数据推送到Slave上。主要的使用场景,如果任务执行需要先下载版本库的内容再执行,那么下载动作是放在Slave上进行的,因为异构网络导致Slave无法连接相关资源时,该方式可以很好的解决
- Slave Prerequisites plugin:对Slave集群进行筛选
使用心得:通过该插件,Master可以在任务执行前先以SSH方式登录到Slave上,然后执行预定义的Shell脚本,进行自定义的健康检查,从而在多个Slave的情况下选择最健康的Slave进行任务的执行,提升任务执行的成功率
- Built-on Column:展示实际执行任务的Node名称
使用心得:通过该插件,可以在页面上直观的看到是哪个节点指定的对应的JOB,对于多节点的场景下能够对于排错有很大帮助
- Timestamper:耗时分析
使用心得:通过该插件,可以将任务输出的内容,每行前均添加时间戳,从而便于分析任务的耗时问题。默认情况下,前面的时间戳是不存在的,仅有后面的内容。同时,对于时间戳的展现形式,也有多种,详见截图
- Mask Passwords Plugin:密码加密
使用心得:通过该插件,可以将用户输入的密码内容以****进行代替,从而避免在输入秘钥后在output中别人看到的隐患。安装完毕该插件后,需要在系统管理-系统设置中对何种类型的参数进行密码,然后在JOB中构建环境部分,勾选Mask passwords and regexes从而让密码加密功能生效
- HTML Publisher plugin:支持HTML输出格式的展现
使用心得:通过该插件可以将Jenkins的执行结果以HTML方式进行展现,当然前提是你的输出结果是HTML文件,该插件现在还无法做到将任意类型的输出内容格式化为HTM
- Mailer Plugin:通过邮件发送任务执行情况
使用心得:通过该插件可以将Jenkins的执行结果(主要是失败任务)以邮件方式进行发送,需要注意的地方是,在配置页面中SMTP认证的用户名和jenkins location的系统管理员邮箱地址需要相同,不然在QQ邮箱中无法正常发出,会报”501 mail from address must be same as authorization user”
- ThinBackup Plugin:定期备份Jenkins
使用心得:通过该插件可以将Jenkins进行定期备份,主要是试用定期备份功能,设置最大的备份数量,历史备份压缩保存以及对需要备份的文件和目录进行定制化设置
- Configuration Slicing Plugin:批量修改JOB的配置
使用心得:通过该插件可以将Jenkins的所有JOB的某些配置点进行单一页面的展示和部分修改。推荐几个常用的修改点,Execute shell slicer,parameters,Timer Trigger Slicer,Timestamper Slicer,Tied Label Slicer,Discard Old Builds Slicer。parameters修改截图如下图所示,全部JOB的parameters已经进行了罗列,按需修改即可。
- Multi slave config plugin:批量修改slave的配置
使用心得:通过该插件可以将Jenkins的所有slave进行批量的管理
- CAS protocol version 1 plugin
使用心得:通过该插件接入公司的认证系统,从而减少了自己维护认证信息的成本
- DingTalk 钉钉
使用心得: 可以通过此插件将构建过程的状态通知到钉钉群。
- Pipeline 流水线
- Generic Webhook Trigger
使用Generic Webhook Trigger插件实现Jenkins+WebHooks(码云)持续集成–指定具体项目和分支进行集成
- GitLab
- build user vars
获取构建用户信息
stages{
stage("获取构建用户信息"){
steps {
wrap([$class: 'BuildUser']) {
script {
BUILD_USER_ID = "${env.BUILD_USER_ID}"
BUILD_USER = "${env.BUILD_USER}"
BUILD_USER_EMAIL = "${env.BUILD_USER_EMAIL}"
}
}
}
}
- SSH Build Agents
支持jenkins 从节点可以通过ssh进行连接, 从节点需要安装jdk1.8 JAVA_HOME=/usr/local/java
参考来自:https://blog.csdn.net/weixin_43947499/article/details/84790642