GitLabwebhook布署以www客户,配置钩子请求延迟时间
原创创建www家目录
mkdir /home/www
chown -R www:www /home/www
vim /etc/passwd
将www:x:1001:1001::/home/www:/sbin/nologin
改为www:x:1001:1001::/home/www:/bin/bash
su - www
mkdir .ssh
ssh-keygen -t rsa
将生成的密钥id_rsa.pub复制到gitlab
验证密钥:
git clone git@192.168.91.137:test/pipelinedemo.git
su - root
vim /etc/passwd
将www:x:1001:1001::/home/www:/bin/bash
改回为www:x:1001:1001::/home/www:/sbin/nologin
初始化本地git代码
mkdir /www/wwwroot/demo
chown -R www:www /www/wwwroot/demo
su -c "
cd /www/wwwroot/demo/
git clone git@192.168.91.137:test/pipelinedemo.git ./
" -s /bin/sh www
修改gitlab的webhook请求超时时间
vim /etc/gitlab/gitlab.rb
Webhook Settings
! Number of seconds to wait for HTTP response after sending webhook HTTP POST
! request (default: 10)
gitlab_rails[webhook_timeout] = 300
重新更新gitlab配置
gitlab-ctl reconfigure
添加webhook钩子
钩子的php代码bushu.php
<?php
/**
- 使用gitlab webhook 自动部署网站
*/
//以流的方式读取传输过来的json
$body = file_get_contents("php://input");
if (empty($body)) {
die(无输入);
}
//json转换为array
$data = json_decode($body, true);
//获取推送分支
//若是主分支且提交数大于0
if (isset($data[ref]) && $data[total_commits_count] > 0){
switch ($data[ref]) {
case refs/heads/master:
//网站根目录绝对路径(以/结尾)
$dir = /www/wwwroot/demo/;
$branch = master;
break;
case refs/heads/dev:
$dir = /www/wwwroot/demodev;
$branch = dev;
break;
default:
die(无需更新);
}
//执行更新
$output = shell_exec(cd . $dir . ; git fetch --all && git reset --hard origin/.$branch. && git config pull.rebase false && git pull 2>&1;);
}else{
$output = 无需更新;
}
//输出执行结果
die($branch.分支执行结果: . $output);
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除