Gitlab自动触发webhook

原理介绍

1、配置gitlab当push动作的时候,访问服务器上的一个链接比如xxx.example.com/boot.php
2、boot.php里面写着一行代码,会让服务器git pull相应项目的代码到web目录。
3、pull结束,代码就在web目录了,我们只要重新访问网站就可以了。

前提要求:

需要搭建好Nginx、PHP、Gitlab服务

1、配置服务端

先在服务端生成一对你的SSH密钥,因为之后服务器要用ssh方式免账号密码从gitlab上pull代码。用ssh-keygen在服务器上生成密钥,或者你已经有密钥了就跳过这一步。

ssh-keygen

有了密钥之后,复制你的公钥,在你的gitlab profile个人资料里,找到SSH的目录,粘贴保存进去就可以了。这样gitlab上就有了你web服务器的公钥了,就可以正常SSH了

cat /root/.ssh/id_rsa.pub


接着在服务端的相应目录下clone gitlab上的项目。这样就可以将这个文件夹对应到gitlab上的项目。后续的脚本就要根据这个对应关系来用脚本驱动这个git pull。
比如我在/var/www/的目录下git clone了gitlab上的项目,得到了/www/html/目录,然后将自己的web服务器nginx解析到/www/html/主目录(修改完配置文件之后,记得reload,不然不会生效的)。

2、服务端脚本

首先是token验证,访问的时候要有特定的token,我们才可以让这个访问生效,一般这个token可以在gitlab填,这样gitlab访问这个脚本的时候就会带上这个token就能识别出来了。有token还不够,被人知道了咋办,我们还要限制IP访问,只有gitlab服务器的ip我们才可以允许执行。修正完就成了下面这个样子。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不忘丶初衷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值