IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 学会jenkins集成邮件/微信/钉钉通知 -> 正文阅读

[系统运维]学会jenkins集成邮件/微信/钉钉通知

01 邮件通知

邮件扩展插件安装Email Extension Plugin,如果已经安装了则不需要再装

该插件可以提供更详细的邮件发送设置
在这里插入图片描述

QQ邮箱准备

公司里会用企业邮箱作为发件人,相关信息找邮箱管理员咨询。本例中采用qq邮箱作为邮件管理员及发件人

1、开启 QQ 邮箱 SMTP 服务,打开 QQ 邮箱进入设置
在这里插入图片描述

2、进入帐户
在这里插入图片描述

3、开启SMTP服务
在这里插入图片描述

4、发送验证码到指定号码
在这里插入图片描述

5、获取授权码,保存此授权码到 txt 文件中,Jenkins 中配置邮箱需要用到此授权码
在这里插入图片描述

6、点击确定,SMTP服务已开启
在这里插入图片描述

jenkins自带邮件配置

在这里可以先测试一下我们的邮箱配置是否正确,邮件能否发送成功

进入系统管理–>系统配置,做如下配置

先增加系统管理员邮件地址

在这里插入图片描述

找邮件通知的区域,进行配置及测试
在这里插入图片描述

点击测试后提示成功,并且邮箱会收到一封邮件,说明邮件发送没有什么问题

配置扩展邮箱

该配置将会作为我们jenkins任务执行完成后的邮件模板

进入系统管理–>系统配置,找到Extended E-mail Notification区域,

做如下配置:
在这里插入图片描述

如果想看任务发送邮件时的详细日志可以勾选下述选项,主要是邮件发送有问题时进行调试使用的
在这里插入图片描述

02 钉钉通知

安装钉钉通知插件
在这里插入图片描述

登录钉钉,配置钉钉机器人

参考链接:

https://developers.dingtalk.com/document/robots/custom-robot-access

jenkins里配置钉钉

进入系统管理–>系统配置,找到钉钉区域,做如下配置
在这里插入图片描述

jenkins 任务配置

钉钉机器人只支持自由风格的任务,不支持maven风格的,所以我们先创建一个自由风格的试一试

1、创建自由风格的项目
在这里插入图片描述

2、保存后立即构建

可以看到钉钉群就收到了任务执行的消息

在这里插入图片描述

03 微信通知

先检查jdk配置

如果jdk是openjdk的版本,那么一定要卸载,用oracle的jdk,否则可能会出错

安装微信通知插件
在这里插入图片描述

登录企业微信,添加微信机器人

1、群消息右键,点击添加机器人
在这里插入图片描述

2、点击添加一个机器人后,点击新创建一个机器人
在这里插入图片描述

3、输入机器人名称,点击添加

在这里插入图片描述

jenkins 任务配置微信通知

进入任务配置界面,拉到最下面,添加企业微信通知
在这里插入图片描述

做如下设置:
在这里插入图片描述

执行任务,企业微信群收到通知

在这里插入图片描述

04 邮件内容模板

邮件模板

$PROJECT_NAME-第$BUILD_NUMBER次构建日志
 <div>   

 <table width="95%" cellpadding="0" cellspacing="0"    style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">

 <tr>           

    <th align="center" colspan="2"><br />
        <h2>构建信息</h2>            

    </th>       

 </tr>       

   <tr>             

     <td>                 

        <ul>                     

           <li>项目名称 :$PROJECT_NAME</li><br />              

           <li>代码覆盖率报告:<a href=${BUILD_URL}jacoco target='_blank'>${BUILD_URL}jacoco</a></li><br />  
           <li>sonar扫描报告:<a href=http://192.168.0.107:9000/dashboard?id=jacocoaa1${BUILD_NUMBER} target='_blank'>http://192.168.0.107:9000/dashboard?id=jacocoaa1${BUILD_NUMBER}</a></li><br />                 
           <li>详细测试日志 :<a href=${BUILD_URL}console target='_blank'>${BUILD_URL}console</a></li><br />  
           <li>触发原因:${CAUSE}</li><br />        
           <li>项目Url :<a href=‘$BUILD_URL’ target='_blank'>$BUILD_URL</a></li><br />          
       </ul>             

    </td>           

    <td height="350px" style="overflow:hidden;display:block">${JELLY_SCRIPT,template="html"}<br/>
   </tr>     

 </table>    

如何知道jenkins都有哪些内置变量?(记得把ip换成你自己的)

地址:http://192.168.0.108:8080/env-vars.html/

05 钉钉和微信通知拓展

钉钉只能用在自由风格的项目,而微信通知又不能自定义消息内容,都不是很完美

那么我们可以自定义脚本的方式来扩展这部分,在任务构建后去执行某段脚本来达到我们的目的,构建后执行脚本需要如下插件
在这里插入图片描述

熟悉钉钉机器人消息接口

https://developers.dingtalk.com/document/robots/custom-robot-access

可以采用接口测试工具先调试接口,调试通了以后再编写脚本

编辑post build里的脚本如下:

#访问当前任务的结果api,并将结果存储在result.json文件中

curl -u admin:123456 ${BUILD_URL}api/json>result.json

#使用awk对result.json做解析,得到任务执行结果

result=$(awk -F ‘“result”:’ ‘{print $2}’ result.json|awk -F ‘[",]’ ‘{print $1$2}’)

echo ${result}

#使用awk对result.json做解析,得到任务执行人

user=$(awk -F ‘“userName”:’ ‘{print $2}’ result.json|awk -F ‘[",]’ ‘{print $1$2}’)

echo ${user}

#使用curl调用钉钉的webhook地址,并将和任务有关的变量拼接在参数text参数中

curl ‘https://oapi.dingtalk.com/robot/send?access_token=b23d3a9cf410a4f7b4b05b1e5fe73ead7f589aa92572bd367cbb919d46904c6b’ \

-H ‘Content-Type: application/json’ \

-d '{

    "msgtype": "markdown",

    "markdown": {

        "title":"dingding",

        "text": "#### '${JOB_NAME}'项目扫描任务  \n - 任务:第'${BUILD_NUMBER}'次\n - 状态:'${result}' \n - 执行人: '${user}' \n \n[查看控制台]('${BUILD_URL}')"

   },

   "at": {

       "atMobiles": [

       ],

       "atUserIds": [

       ],

       "isAtAll": false

  }

}’

最终收到的消息:
在这里插入图片描述

熟悉微信机器人的消息接口

在企业微信机器人配置界面可以看到接口相关信息

在这里插入图片描述

可以采用接口测试工具先调试接口,调试通了以后再编写脚本

编辑post build里的脚本如下:

#访问当前任务的结果api,并将结果存储在result.json文件中

curl -u admin:123456 ${BUILD_URL}api/json>result.json

#使用awk对result.json做解析,得到任务执行结果

result=$(awk -F ‘“result”:’ ‘{print $2}’ result.json|awk -F ‘[",]’ ‘{print $1$2}’)

echo ${result}

#使用awk对result.json做解析,得到任务执行人

user=$(awk -F ‘“userName”:’ ‘{print $2}’ result.json|awk -F ‘[",]’ ‘{print $1$2}’)

echo ${user}

#使用curl调用微信的webhook地址,并将和任务有关的变量拼接在参数content参数中

curl ‘https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=a2a30ae8-4c5f-4302-9820-dc8b92d2f510’ \

-H ‘Content-Type: application/json’ \

-d '{

     "msgtype": "markdown",

     "markdown": {

         "content": "#### '${JOB_NAME}'项目扫描任务1  \n - 任务:第'${BUILD_NUMBER}'次\n - 状态:'${result}' \n - 执行人: '${user}' \n <@沙陌> \n \n[查看控制台]('${BUILD_URL}') "

  }

}’

最终收到的消息:
在这里插入图片描述

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 00:32:30  更:2022-04-01 00:36:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 23:48:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码