php git自动化部署,Gitlab配置webhooks实现自动化部署

//作为接口传输的时候认证的密钥

$valid_token = 'shfdksjdakjshdfjknvkja';

$client_token = $_GET['token'];

$project = $_GET['project']; //多个项目

$client_ip = $_SERVER['REMOTE_ADDR'];

$fs = fopen('./auto_hook.log', 'a');

fwrite($fs, '============================开始==============================='.PHP_EOL);

fwrite($fs, '时间:'.date("Y-m-d H:i:s", time()).',请求来自:['. $client_ip.']'.PHP_EOL);

if ($client_token !== $valid_token) {

fwrite($fs, "TKOEN 错误-- [{$client_token}]".PHP_EOL);

fclose($fs);

exit(0);

}

$json = file_get_contents("php://input");

$data = json_decode($json, true);

fwrite($fs, 'Data: '.print_r($data, true).PHP_EOL);

//这里也可以执行自定义的脚本文件updata.sh,脚本内容可以自定义

switch ($project) {

case 'web':

$res = exec("/home/www/hook.sh", $result);

break;

}

fwrite($fs, 'Data:'. print_r($result, true).PHP_EOL);

fwrite($fs, '============================结束==============================='.PHP_EOL);

fclose($fs);

var_dump($result);

接下来通过浏览器访问测试:http://www.xxxxx.com/webhook.php?token=shfdksjdakjshdfjknvkja&project=web

访问后,如果能返回git执行的信息,就表示成功了。接下来就是配置gitlab的webhooks。

为支持多个项目 配置了project参数,可以部署多个项目。只需要在gitlab钩子中配置时,使用不同的project参数。

b00c5ab19160ea3aa4fff60a7e5f74f4.png

触发事件自己选择

部署完成后,修改/etc/passwd文件,将www用户修改为nologin即可!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值