GitLab webhook部署以www用户,配置钩子请求超时时间

56 篇文章 0 订阅
6 篇文章 1 订阅

创建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);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

梅坞茶坊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值