Jenkins實現CICD之釘釘告警

尹正杰發表於2024-11-24

                                              作者:尹正傑

版權宣告:原創作品,謝絕轉載!否則將追究法律責任。

目錄
  • 一.Jenkins配置釘釘機器人並測試
    • 1.確保是否安裝了DingTalk外掛
    • 2.進入釘釘的配置頁面
    • 3.配置通知時機
    • 4.新增機器人
    • 5.填寫釘釘的webhook及關鍵字資訊
  • 二.配置釘釘告警
    • 1.獲取釘釘告警的通知函式
    • 2.編寫Jenkinsfile
    • 3.Jenkins基於Jenkinsfile構建

一.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構建

如上圖所示,我們成功告警啦~

相關文章