💯 作者: 俗世游子【谢先生】。 8年开发3年架构。专注于Java、云原生、大数据等领域技术。
💥 成就: 从CRUD入行,负责过亿级流量架构的设计和落地,解决了千万级数据治理问题。
📖 同名社区:51CTO、 github、掘金、gitee。
📂 清单: goku-framework、【更新中】享阅读II
DevOps系列
深入浅出DevOps:SonarQube提升代码质量
深入浅出DevOps:SonarQube提升代码质量【下】
深入浅出DevOps:Jenkins基于Harbor部署
前言
本人所在团队中总是出现这样的情况:
- 前后端联调,前端采用TypeScript的方式开发,而前端为了方便采用了一个插件:
- 就是在生成api.ts这种文件的时候需要通过后端服务的Swagger来生成,返回对象等信息
由于前端强依赖于后端服务,因此每次部署后端服务,要么就需要跟前端说一声已成功部署,偶尔就会忘记这个事情从而导致联调工作搁置。
在我看来:这种方式的前后端联调是一个非常痛苦的过程
构建通知
由于出现上述的情况,所以我们将部署交给Jenkins之后,通知到人的这个过程也是非常重要的一个步骤。而通过的方式有很多种,在Jenkins内部支持如下通知方式:
- 电子邮件
- Hipchat
- Slack
- 。。。
除了电子邮件的方式,其他的本人也没有使用过,所以我这里就不做过多的介绍
如果大家有公司采用的是钉钉的话,还可以通过钉钉来进行通知,主要是需要安装一款插件:
那我就先来介绍一个关于钉钉通知的流程:
- 通过
钉钉机器人插件
能够让Jenkins和钉钉进行交互,通过我们配置的WebHooks将构建结果已群组机器人的名义通知到对应的群组中
开始配置DingTalk
关于插件的安装,这里就不多进行介绍,我们在前面也已经介绍过很多次了。
群组添加机器人
下面我们来直接进行配置介绍, 首先在配置之前需要先在群组中添加机器人,得到对应的WebHooks地址
下面看我操作
- 点击群组的设置按钮,找到其中的智能群助手
- 在添加机器人中选择自定义的选项
- 添加完成之后得到最终的webhook地址信息
Jenkins配置
在通知之前,我们需要在系统管理>系统配置
中进行基本配置
通知时机相信大家都明白,这里就不用过多的介绍,一般情况下我只通知构建成功和失败的时候,其他的可以不需要通知
点击新增按钮,会出现添加机器人的窗口,根据需要配置的信息填写即可,正确填写名称和webhook地址
测试成功之后,在钉钉中会下发如下信息,也就表示我们在Jenkins中添加钉钉机器人的配置是成功的
流水线任务配置
相信大家还记得,在流水线任务中,判定运行过程成功还是失败是通过post
标签来实现的,那么我们最终配置的过程也是如此
我们需要在和stages
平级的位置添加post
配置
此处内容可以完全复制,这里只需要注意robot
和之前在Jenkins内配置的机器人ID一致
而关于DingTalk的语法,我们可以从它的官方网站查看。介绍的还是比较详细的,在使用的时候那块不清楚的,可以直接查看官网
构建进行测试
当流水线任务构建成功之后,我们能够很快的在钉钉的群组中发现通知消息。
此处也就说明了我们通过DingTalk整合钉钉的通知就已经成功了
配置邮件通知
上面的属于是一种通知方式,但是这种方式可能并不适用于全部的情况。接下来我们再来看看一种更加通用的通知方式
本人现在公司内部通讯采用的是WeLink,这就很糟心了
邮件已经是一种非常普遍的传递消息的方式,那万能的Jenkins当然也是支持通过邮件的方式来进行消息通知的。
当然了,基本的配置是必可避免的,接下来我们来看看吧
配置Jenkins Location邮件
在我们配置邮件服务之前,需要注意的是:一定要先配置系统管理员邮箱
进入到系统管理>系统配置
页面,先找到Jenkins Location的位置
这里针对的是在安装Jenkins页面的时候,出现的配置地址和邮箱
配置的邮件其实就相当于通知的主邮件发送
我们先在这里配置好
QA: 为什么必须要配置系统管理员?
经过本人的不断测试,如果没有配置系统管理员的话,在测试邮件发送的时候会出现发送异常的情况出现。
配置邮件通知
系统管理员邮箱配置完成之后继续向下滑动,滑动到邮件通知的位置
不知道大家有没有做过关于邮件的开发,这种开发最重要的是要让指定邮箱账号开启第三方发送邮件的服务,总的来讲,每种邮箱都需要在自己的设置中进行开放
我在这里已搜狐邮箱为例:
其他邮箱基本上都是一样的操作
既然Jenkins要使用SMTP服务,那么我们就将SMTP服务所对应的地址信息填写到对应项中,SMTP服务所对应的端口是:25
我保证搜狐邮箱对应的端口,其他的邮箱建议大家到对应的地址进行查看
接下来就必须要进行登录授权认证了:
在点开的高级选项中,在如下选中框中输入用户名和密码。懂的都懂,这里就不过多赘述了
还是要啰嗦一句:
这里的密码并不是邮箱账号本身的密码,而是各位在开启服务的时候生成的第三方客户端独立密码
测试邮件配置是否成功
正常配置成功之后,接下来我们就可以进入到测试的阶段。如下所示,当出现图中提示的时候说明整个配置过程是成功的
既然如此,接下来我们就要跟任务进行一个配置,来搞定邮件推送构建结果
整合到Jenkins任务
在Jenkins文档介绍中我们看到了关于邮件通知的示例,既然如此,我们就先拿过来试试呗。反正又不掏钱!!!
我们来修改一下Jenkinsfile
,把之前的钉钉通知改为邮件通知
此处内容可以完全复制,调整完结构之后,我们立即构建试试,稍等片刻等待结果的出现!!!
各位:见证奇迹的时刻!!
好的,到此邮件通知也正式收工
最后
基于钉钉和邮件的通知到这里也就全部结束了。
与此同时关于DevOps的相关介绍到这里也就到此收尾,后续内容敬请期待!!!