GitLabwebhook布署以www客户,配置钩子请求延迟时间

原创
小哥 3年前 (2022-11-05) 阅读数 138 #AI人工智能

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

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除

热门