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%EF%BC%9Burl%E4%B8%BA 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;