webhook 挂钩自动部署

时间:2022-11-09 08:49:41

假设我们现在有一个需求,就是将项目打包上传到gitlab或者github后,程序能自动部署,不用手动地去服务器中进行项目更新并运行,如何做到?这里我们可以使用gitlabgithub的挂钩,挂钩的原理就是,每当我们提交请求到gitlabgithub服务器时,这时他俩会根据我们配置的访问地扯进行访问,webhook挂钩程序会一直监听着某个端口请求,一但收到他们发过来的请求,这时就知道用户有请求提交了,这时我们就可以用webhook程序执行部署脚本命令了。

使用说明

gitlab webhook

下载项目

git clone https://github.com/dounine/gitlab-webhook.git

自行修改第9行读取密码文件的位置

fs.readFile('/root/issp/gitlab-webhook/password.txt', 'utf8',....

修改第65行执行shell脚本位置

cmd.get('/root/issp/docker/' + event.mode + '/run.sh',....

运行

cd gitlab-webhook && ./start.sh

gitlab配置

URLhttp://xxxxx:7777/webhook
Secret Token:password.txt里面的密码

github webhook

下载项目

git clone https://github.com/dounine/github-webhook.git

自行修改第3行密码文件的位置

var secretPassword = 'abc123' //github secret安全密码

修改第7行执行shell脚本位置

var bash = '/root/xxx/test.sh' //执行的脚本

运行

cd github-webhook && ./start.sh

gitlab配置

Payload URLhttp://xxxxx:7777/webhook
Secret:安全密码