Jenkins+gitlab自动构建Job并推送钉钉消息提示

实现功能:

  • 代码提交gitlab,自动触发Jenkins任务
  • Jenkins任务完成后发送钉钉消息通知

jenkins安装

下面是自动化安装jenkins的脚本:

#和jdk安装包在同一级目录下执行安装
#auth:    xinaho.zhang
#date:    2020.07.12
###################################################################################################3
VERSION=2.239

#java -version 
if [ ! -f /usr/bin/java ];then
  cd /usr/local/src
  yum install -y jdk-8u191-linux-x64.rpm &> /dev/null  
  touch /etc/profile.d/jdk.sh
cat > /etc/profile.d/jdk.sh << EOF
export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH
EOF
. /etc/profile.d/jdk.sh
fi

wget https://mirror.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-${VERSION}-1.1.noarch.rpm
yum install jenkins-${VERSION}-1.1.noarch.rpm -y

systemctl start jenkins

cat > /var/lib/jenkins/hudson.model.UpdateCenter.xml << EOF


  
    default
    https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
  

EOF
/usr/bin/sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' /var/lib/jenkins/updates/default.json && /usr/bin/sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' /var/lib/jenkins/updates/default.json

systemctl restart jenkins

gitla安装

1.配置gitlab国内yum源安装gitlab:

vim /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1

#清除并更新yum缓存
yum clean all && yum repolist


# 安装gitlab依赖软件
yum install curl policycoreutils openssh-server openssh-clients postfix


# 安装gitlab
yum install gitlab-ce  #安装gitlab,默认安装安装的为最新版本,安装时可以指定具体的版本进行安装。如果没有关闭防火墙需要配置防火墙

2.配置启动gitlab

#修改gitlab配置文件” /etc/gitlab/gitlab.rb”,绑定自己主机ip地址
# 将external修改为自己主机ip地址
external_url 'http://192.168.88.30'
# 启动gitlab并使修改的配置生效
gitlab-ctl reconfigure
#第一次启动配置可能需要好几分钟,建议gitlab主机配置内存2核4G以上

3.登录gitlab
直接在浏览器中输入部署gitlab服务器的iP即可登录(#80端口是在初始化gitlab的时候启动的,因此如是之前有程序占用会导致初始化失败或无法访问):
Jenkins+gitlab自动构建Job并推送钉钉消息提示_第1张图片
Jenkins+gitlab自动构建Job并推送钉钉消息提示_第2张图片
gitlab常用操作命令:

gitlab-ctl status:查看gitlab状态
gitlab-ctl start:启动gitlab
gitlab-ctl stop:停止gitlab
gitlab-ctl restart:重启gitlab
gitlab-ctl tail servername:查看gitlab集成的服务日志

配置jenkins连接gitlab

jenkins安装常用插件: GitLab Plugin
在系统管理->系统配置里添加gitlab连接信息
Jenkins+gitlab自动构建Job并推送钉钉消息提示_第3张图片
其中 Credentials选项添加Gitlab API token 凭据:
Jenkins+gitlab自动构建Job并推送钉钉消息提示_第4张图片
Jenkins+gitlab自动构建Job并推送钉钉消息提示_第5张图片
Jenkins+gitlab自动构建Job并推送钉钉消息提示_第6张图片
Jenkins+gitlab自动构建Job并推送钉钉消息提示_第7张图片

添加钉钉提示机器人

打开钉钉点击头像选择机器人管理:
Jenkins+gitlab自动构建Job并推送钉钉消息提示_第8张图片

Jenkins+gitlab自动构建Job并推送钉钉消息提示_第9张图片

Jenkins+gitlab自动构建Job并推送钉钉消息提示_第10张图片
完成后会生成一个token地址:
Jenkins+gitlab自动构建Job并推送钉钉消息提示_第11张图片
我们就可以在jenkins服务器上测试这个消息推送:

#其中access_token就是填我们在上部生成的token
curl 'https://oapi.dingtalk.com/robot/send?access_token=900f9db712ef5b75458f3bad6ca6ed1ebcc2ee1b64ae68693535d9af1ef28f79' \
   -H 'Content-Type: application/json' \
   -d '{"msgtype": "text","text": {"content": "测试警报,我就是我, 是不一样的烟火"}}'
#content里一定要写上我们自定义的关键词,否则报错

不出意外的话钉钉会收到提示消息
在这里插入图片描述

创建jenkins job

在gitlab里新创建一个测试项目:
Jenkins+gitlab自动构建Job并推送钉钉消息提示_第12张图片
然后我们通过我们的IDE或其他工具push一些文件上去:
Jenkins+gitlab自动构建Job并推送钉钉消息提示_第13张图片
在jenkins里面创建一个job:
Jenkins+gitlab自动构建Job并推送钉钉消息提示_第14张图片
然后我们选择构建触发器,并记录下URL:
Jenkins+gitlab自动构建Job并推送钉钉消息提示_第15张图片
在gitlab-setting里选择webhook:
Jenkins+gitlab自动构建Job并推送钉钉消息提示_第16张图片
在webhook里URL填上次jenkins里记录的URL,Token在下面高级选项里生成
Jenkins+gitlab自动构建Job并推送钉钉消息提示_第17张图片

Jenkins+gitlab自动构建Job并推送钉钉消息提示_第18张图片
添加webhook:
Jenkins+gitlab自动构建Job并推送钉钉消息提示_第19张图片
然后在jenkins job里添加上我们的钉钉推送命令:
Jenkins+gitlab自动构建Job并推送钉钉消息提示_第20张图片

然后我们保存jenkins job,在push一些代码到gitlab上去测试:
Jenkins+gitlab自动构建Job并推送钉钉消息提示_第21张图片
构建成功后:我们钉钉就会收到提示信息:
Jenkins+gitlab自动构建Job并推送钉钉消息提示_第22张图片

你可能感兴趣的:(CI/CD,jenkins)