首页 / 后端开发 / 宝塔webhook自动同步git服务器同步

宝塔webhook自动同步git服务器同步

2023-09-25 09:25 后端开发 阅读 2013 来源 php先锋网

团队协作离不开git仓库,配置宝塔上面的webHook ,实现将本地代码提交到码云仓库后自己更新到云服务器!

一、在宝塔面板中的软件中安装”宝塔WebHook”,没有安装的直接点安装就行

二、查看服务器是否安装git

执行命令  git version 查看是否输出版本

 没有输出版本号,请执行以下命令安装git

yum install -y git

 三、生成公钥

在终端执行命令,看图宝塔webhook同步git

假设如果没有得话,可以执行以下命令生成证书

ssh-keygen -t rsa       

 一直回车就可以,   如果存在得话,不知道是否使用,也可以生成新的证书,名下如下

ssh-keygen -t rsa -f phpvan     #phpvan可以修改你想要得名字

 宝塔webhook同步git

四、配置gitee

cat /root/.ssh/id_rsa.pub   # 自定义名字请根据实际名字填写

宝塔webhook同步git全部复制,粘贴到gitee你所需要配置得项目,管理->部署公钥管理->添加公钥 添加

宝塔webhook同步git

五、配置宝塔webHook
点击 设置->添加 名称随意,例如 xx项目同步

执行脚本

#manage
#!/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项目路径
gitPath="/www/wwwroot/$1"
#git 网址两种方式都可以ssh 或者https
gitHttp="git@gitee.com:phpvan/$1.git"
echo "Web站点路径:$gitPath"
#判断项目路径是否存在
if [ -d "$gitPath" ]; then
        cd $gitPath
        #判断是否存在git目录
        if [ ! -d ".git" ]; then
                echo "在该目录下克隆 git"
                sudo git clone $gitHttp $1
                sudo mv gittemp/.git .
                sudo em-rf gittemp
        fi
        echo "拉取最新的项目文件"
        # sudo git reset --hard origin/master
        sudo git pull        
        echo "设置目录权限"
        sudo chown -R www:www $1
        echo "更新成功"
        exit
else
        echo "该项目路径不存在"
        echo "新建项目目录"
        mkdir $gitPath
        cd $gitPath
        #判断是否存在git目录
        if [ ! -d ".git" ]; then
                echo "在该目录下克隆 git"
                sudo git clone $gitHttp $1
        fi
        echo "拉取最新的项目文件"
        sudo git reset --hard origin/master
        # sudo git pull
        echo "设置目录权限"
        sudo chown -R www:www $gitPath
        echo "End"
        exit
fi

保存,一定要注意$1,$1后面我会讲,gitHttp地址,要使用ssh地址

然后查看密钥

宝塔webhook同步git

然后复制画横线得部分,粘贴到gitee中webHooks中,添加webHook

宝塔webhook同步git

WebHook 密码 是宝塔那边得密钥,  param=aaa    aaa就是$1值, 项目的根目录和git地址不相符的话,可以根据你项目得实际情况,进行修改,或着直接把代码$1写死都是可以

五、 在服务器完成git账户信息的写入

git config --global user.name "你的用户名" 
git config --global user.email "你的邮箱"
git config --global user.password "你的密码"

六、在gitee中执行测试

看下服务器是否成功拉取代码,如果不是,请在服务器项目根目录中手动执行

git clone  跟上仓库的地址
有可能会输入gitee的账户密码,正常输入即可,如果拉取下来的是项目的文件夹,请进去文件夹,全部剪切到项目的根目录中,然后删除生成的项目文件夹

项目结构如下所示宝塔webhook同步git

此时,可以修改下试试推送git,看看是否同步服务器,正常同步,在宝塔webhook中可以查看日志,如下所示代表同步正常宝塔webhook同步git

七、 异常问题处理

如果服务器和git冲突
可以在服务器执行命令

git reset --hard origin/master
git pull

宝塔最新版需要https证书

证书报错的话,目前的解决办法,宝塔绑定域名,配置域名证书来解决 

猜你喜欢