3Jenkins+Gitlab配置Webhook实现提交自动部署
本文主要讲述如何使用Jenkins Gitlab设置WebHook实现自动部署 , 如果你不清楚请如何安装请访问我之前写的安装
了解使用请访问使用.
登陆Jenkins
选择对应的[Job]-构建触发器一栏
选中Build when a change is pushed to GitLab. 后面这个URL就是这个job 的webhook url,复制备用
登陆GItlab
选择你的项目-setting-Integrations Settings
ludzh > jenkins-gitlab-demo > Integrations Settings
粘贴刚才复制的Webhook url,并选中Push events(默认),
这里的意思是的当git项目发生push事件的时候会通知Jenkins抓取代码并构建
其他选项默认就好,点击 Add webhook完成创建
接下来gitlab报了一个错误,大概意思是本地url不受支持,经搜索发现gitlab好像在版本10之后出于安全考虑不允许添加本地的url作为webhook,
出现这个错误可以用gitlab管理员账户登录管理界面
进入Configure GitLab
进入 Admin Area > Settings > Outbound requests
选中 Allow requests to the local network from hooks and services
Click Save changes 保存修改
提示修改成功了
我们登出管理员账户使用自己的账户登录,重新设置刚才的webhook url 发现可以正常Add了
现在来测试一下
这个我理解应该是触发一次Push 事件
噢耶又报错了,报错比没反应强, 看错误403应该是鉴权的问题,这个倒是好解决,
我发现两个解决办法 一个是修改webhook url 在地址中添加Jenkins账号密码信息
比如我的web hook地址为 http://10.10.167.106:22000/project/jenkins-gitlab-demo
修改为 http://Jenkins账户:密码@10.10.167.106:22000/project/jenkins-gitlab-demo
删除刚才的添加的url,把修改后的url再添加一次
再次测试一下,提示200 成功了
现在去Jenkins那边看下是不是开始构建了,OK 是的
另一种解决办法是将Jenkins的认证系统关闭也可以达到效果(反正是关闭登陆鉴权)
我觉得这种方法可以内部使用一下,各位看官如果有更好的解决办法烦请留言告知
到此为止关于 Jenkins gitlab webhook的介绍完了
谢谢
2018-07-10