一:本文目的
通过ssh到服务器并查看指定命令返回的结果,来判断是否发送告警。比如说:我们发版完后,通过查看gitlab的tag是否是选定的tag,来判断本地发版是否成功。
二:结果展示
三:过程概述
1.首先登陆服务器执行命令
2.根据返回的结果来判断,是否符合预期。
3.符合预期或不符合预期事,调用对应的python脚本来发送消息。
4.艾特钉钉群里相关的人员。
四:过程细节
1.在配置jks里配置脚本(涉及gitlab的tag判断和告警)
#!/bin/bash
#此执行shell用于检测发版的结果。
remote_ip="192.168.1.1"
kaihei_api01_gettag_linshi="ssh 172.16.10.201 'cd /data/wwwroot/ && git branch |grep from '"
#登录yunwei-tools服务器执行命令
kahiei_api01_tag=`ssh root@$remote_ip $kaihei_api01_gettag_linshi`
kahiei_api01_tag1=`echo $kahiei_api01_tag |awk '{print $NF}' |sed 's/)//g'`
echo "$kahiei_api01_tag1"
echo "业务服务器的tag:$kahiei_api01_tag1 "
echo "本次发版选的Tag:$git_tag"
funcSendMsgToDingdingOk() {
NowTime=`date "+%Y-%m-%d %H:%M:%S"`
#运维钉钉群
#WebHook='https://oapi.dingtalk.com/robot/send?access_token=xxx'
curl $WebHook -H 'Content-Type: application/json' -d " {
'msgtype': 'text',
'text': {
'content': '$1 : $2 $3 \n选择版本号:$4 \n服务器版本号:$5 \n时间: $NowTime '
},
'at': { 'atMobiles': [
"1593xxx",
"191xx"
],
'isAtAll': false
},
}"
}
funcSendMsgToDingdingError() {
nodename=`hostname`
nodeip=`hostname -i`
time=`date '+%Y-%m-%d-%H:%M:%S'`
url='https://oapi.dingtalk.com/robot/send?access_token=xxx'
curl -s $url \
-H 'Content-Type: application/json' \
-d '{
"msgtype": "markdown",
"markdown":
{"title":"运维监控告警",
"text":"![screenshot](https://images.cnblogs.com/cnblogs_com/blogs/718800/galleries/2294157/o_230330085502_1.png) \n
**告警信息:** <font color=\"#FF0000\">'${1}-${2}' </font> \n
**报警时间**: <font color=\"#0000FF\">'${time}' </font>\n
**告警详情**: <font color=\"#0000FF\">'${nodename}-${nodeip}-${3}-${4}-${5}' </font>\n
> 来自脚本的监控--'${0}'
"
},
'at': { 'atMobiles': [
"18003xxx",
"18217xxx"
],
'isAtAll': false
},
}'
}
if [[ $git_tag == $kahiei_api01_tag1 ]];then
echo " update-gitTag is ok $git_tag $kahiei_api01_tag1 . "
funcSendMsgToDingding 发版成功通知 ${JOB_NAME} kahiei_api01 ${git_tag} ${kahiei_api01_tag1}
else
echo " update-gitTag is error $git_tag $kahiei_api01_tag1 ."
funcSendMsgToDingdingError 发版失败开始重试 ${JOB_NAME} kahiei_api01 ${git_tag} ${kahiei_api01_tag1}
curl https://jks.cupli.com/buildByToken/buildWithParameters?"job=$JOB_NAME&token=iamkeyforfaban&git_tag=$git_tag"
fi
echo "检查tag完毕 , `date`"
- 构建 (选择发版时需要的tag并触发判断)
完!