作者:尹正傑
版權宣告:原創作品,謝絕轉載!否則將追究法律責任。
目錄
- 一.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構建
如上圖所示,我們成功告警啦~