使用宝塔面板配置webhook

前言:最近开发用的测试服务器搭建了宝塔面板,在团队开发的时候为了方便,使用webhook不用上服务器自己手动拉代码,现在就说说宝塔webhook的配置

1.先来说说git仓库

git仓库有很多代码托管平台,Github、Gitee、Gitlab等等,本文使用Gitee配置webhook,其他git仓库大致相同效仿就行。

使用git clone代码有两种方式:

第一种:https方式,例如:https://gitee.com/xxxxx/xxxx.git

第二种:ssh密钥方式,例如:git@gitee.com:xxxx/xxxxx.git

这两种方式拉代码是有区别的,例:

https方式拉代码:

使用git命令

git clone https://gitee.com/xxxx/xxxxx.git

此方式在未配置保存git账号密码的机器上clone代码时需要输入账号密码,每次拉代码都需要输入账号密码比较麻烦,可以使用以下命令保存输入后的密码:

git config credential.helper store

此方式是将密码和仓库链接保存在硬盘中

ssh方式拉代码:

此方式需要在git服务器上创建公钥,创建公钥命令:

ssh-keygen -t rsa -C "your@email.com"

按照提示完成三次回车,即可生成 ssh key

此命令可以在服务器上创建一个公钥可以通过下列命令查看创建的公钥:
 

cat ~/.ssh/id_rsa.pub

但是问题来了,一个服务器里面只能创建一个公钥吗?那样一个服务器部署多个项目不可能只用一个公钥吧,我们可以使用以下命令来创建多个公钥

ssh-keygen -t rsa -C "your@email.com" -f ~/.ssh/id_rsa_new

其中,-f 参数表示生成公钥/私钥的路径,不设置,代表默认路径。这样我们就可以在同一个服务器中创建多个公钥了,查看公钥命令

cat ~/.ssh/id_rsa_new.pub

接下来我们将获取的公钥复制到gitee创建的仓库中,例:

添加公钥

这样我们就能使用git命令轻松的拉代码了,免去了使用账号密码的麻烦了

备注:新手在使用git时候要在本地服务器配置一下git全局的用户名与邮箱,命令如下

# Git全局配置和单个仓库的用户名邮箱配置
git config --global user.name  "username"
git config --global user.email  "your@email.com"

2.接下来我们来配置宝塔的webhook

1.首先,进入宝塔面板的软件管理,找到宝塔webhook添加一个新的webhook(注意执行脚本在新添加的时候不用写,可以等待创建成功后再编写)

添加webhoook

2.选择你新添加的webhook,点击进入编辑添加shell命令

#!/bin/bash
echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
#判断宝塔WebHook参数是否存在
if [ ! -n "$1" ];
then 
          echo "param参数错误"
          echo "End"
          exit
fi
#git项目路径($1是param后面的参数,指向你的服务器的目录)
gitPath="/www/wwwroot/$1"
#git 网址 (替换成你的git地址,可选择https方式或者ssh方式)
gitHttp="https://gitee.com/xxx/xxx.git"
 
echo "Web站点路径:$gitPath"
 
#判断项目路径是否存在
if [ -d "$gitPath" ]; then
        cd $gitPath
        #判断是否存在git目录
        if [ ! -d ".git" ]; then
                echo "在该目录下克隆 git"
                git clone $gitHttp gittemp
                mv gittemp/.git .
                rm -rf gittemp
        fi
        #拉取最新的项目文件
        #git reset --hard origin/master
        git pull
        #设置目录权限
        chown -R www:www $gitPath
        echo "End"
        exit
else
        echo "该项目路径不存在"
        echo "End"
        exit
fi

3.接下来选择你创建的webhook,然后点击查看密钥 ,注意宝塔的webhook链接是: http://面板地址:面板端口?access_key=密钥&param=你的代码目录地址

4.进入gitee仓库选择管理的webhooks添加新的webhook (密码可以不填)

5.添加成功后点击测试查看请求结果

这样我们配置webhook就大功告成了

注意:

1.如果碰到项目比较大或者其他未知的情况,可以先在指定的目录中先把代码拉一下

2.git私有项目必须配置公钥

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值