jenkins + gitlab 自动触发部署 + 钉钉消息推送(基础)
jenkins + gitlab 配置
-
安装gitlab plugin 插件中心搜索并安装gitlab,直接安装即可
-
打开jenkins 系统管理,配置Gitlab
其中的API Token,需要从下个步骤中获取 -
获取AccessToken
登录gitlab,选择user->profile->access tokens新建一个访问token;这里权限设置全部如果需要权限控制,自行取舍 -
jenkins 创建自由风格项目
-
gitlab connection 选择为刚创建的gitlab
-
源码管理选择Git,填项项目地址
-
新建一个
Credentials
认证,使用用户名密码 方式,配置gitlab的用户和密码 -
构建触发器选择 Build when a change is pushed to GitLab
-
点击高级,往下滑;生成一个Secret token
-
保存
-
-
到gitlab配置webhook
-
进入 项目 下 settings->Integrations
-
URL: http://jenkins.qq.com/project/free;url为 jenkins 生成的连接
-
Secret Token 填入在Jenkins端生成的token
-
Add webhook
-
test push events会不通过,因为gitlab中无法解析自定义域名
如下截图表示通过
-
-
配置host解析;线上项目不用,因为这里使用的是自定义的 qq.com 域名
由于我们的Jenkins域名是本地解析,因此需要在gitlab中添加解析,进入gitlab容器编辑hosts文 件,或者重新运行容器,在宿主机中的hosts中添加并挂载到容器的hosts目录。再次test push events,会由于安全设置,报错:Requests to the local network are not allowed
-
设置gitlab允许向本地网络发送webhook请求
访问 http://152.136.62.143/admin/application_settings/network ,展开Outbound requests Collapse,勾选第一项即可。再次test push events,成功。
-
配置free项目,增加构建步骤,执行shell,将发送钉钉消息的shell保存
钉钉官方文档:连接
$ curl 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxx' \ -H 'Content-Type: application/json' \ -d '{"msgtype": "text", "text": { "content": "我就是我, 是不一样的烟火" } }'
-
提交代码到gitlab仓库,查看构建是否自动执行;自动执行完之后,会发送钉钉消息到群聊
钉钉配置
配置钉钉群聊
点击设置,添加群助手
⚠️:
-
自定义关键字(发送过来的消息中必须包含该关键字。不然发送失败)
-
IP地址段(发送的主机IP地址段)安全措施
复制 webhook url;
本文来自博客园, 作者:Star-Hitian, 转载请注明原文链接:https://www.cnblogs.com/Star-Haitian/p/16519154.html