Jenkins实现CICD之钉钉告警

                                              作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.Jenkins配置钉钉机器人并测试

1.确保是否安装了DingTalk插件

如上图所示,我已经安装了DingTalk插件。

2.进入钉钉的配置页面

如上图所示,点击“钉钉按钮”就可以进入到钉钉的配置页面。

3.配置通知时机

如上图所示,我们可以配置通知时机。

4.新增机器人

如上图所示,点击"新增"机器人。

5.填写钉钉的webhook及关键字信息

如上图所示,我们可以添加钉钉的webhook信息机钉钉设置的关键字。配置完成后点击"Submit"提交任务。

如下图所示,钉钉测试邮箱成功了?

二.配置钉钉告警

1.获取钉钉告警的通知函数

如上图所示,我们可以获取到钉钉告警的通知。

2.编写Jenkinsfile

// 所有的脚本命令都放在pipeline中
pipeline {
	
	// 指定任务构建在哪个Jenkins节点中执行,any表示任意节点均可。
	agent any

	// 声明全局变量,方便后续使用
	environment {
        HarborUsername = 'admin'
        HarborPassword = '1'
        registry = '10.0.0.250'
        project = 'yinzhengjie-devops'
	}

	// 定义阶段任务列表
	stages { 

		stage('拉取gitee仓库代码'){
			steps {
				checkout scmGit(branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[url: 'https://gitee.com/jasonyin2020/yinzhengjie-devops-k8s.git']])
			}
		}


		stage('基于Dockerfile构建镜像,镜像名称为Jenkins的job名称,而version为自定义git参数'){
			steps {
				sh 'docker build -t ${JOB_NAME}:${version} .'
			}
		}

		stage('推送镜像到Harbor仓库'){
			steps {
				sh '''docker login -u ${HarborUsername} -p ${HarborPassword} ${registry}
docker tag ${JOB_NAME}:${version}  ${registry}/${project}/${JOB_NAME}:${version}
docker push ${registry}/${project}/${JOB_NAME}:${version}'''
			}
		}
  
	}
    
    // 在所有stage步骤做完之后,我们需要配置处理的任务。
    post{
        // success表示任务构建成功后,需要发送钉钉告警通知。
        success {
            dingtalk(
                // 指定Jenkins中配置钉钉的ID信息。
                robot: 'yinzhengjie-Jenkins',
                // 指定通知文本的类型为markdown。
                type: 'MARKDOWN',
                // 配置任务的标题,如果要引用变脸,则需要使用双引号。
                title: "success: ${JOB_NAME}",
                // 定义文本推送的内容,其中${currentBuild.durationString}在流水线语法中"全局变量参考"有记录。
                text: ["- 镜像构建成功: ${registry}/${project}/${JOB_NAME}:${version}\n- 耗时: ${currentBuild.durationString}\n- 详细信息: ${env.BUILD_URL}" ]
            )
        }

        // failure表示任务构建成功后,需要发送钉钉告警通知。
        failure {
            dingtalk(
                robot: 'yinzhengjie-Jenkins',
                type: 'MARKDOWN',
                title: "failure: ${JOB_NAME}",
                text: ["- 镜像构建失败: ${registry}/${project}/${JOB_NAME}:${version}\n- 耗时: ${currentBuild.durationString}\n- 详细信息: ${env.BUILD_URL}" ]
            )
        }
    }
}

3.Jenkins基于Jenkinsfile构建

如上图所示,我们成功告警啦~
posted @ 2024-11-24 01:07  尹正杰  阅读(46)  评论(0编辑  收藏  举报