
宝塔使用webhook自动部署
本文最后更新于 2023-12-16,文章内容可能已经过时,请注意发布时间。
title: 宝塔使用webhook自动部署
id: bab1f4cc-0922-49f5-8bd5-6f2207bf4ad1
date: 2023-12-11 00:41:25
auther: liqi
excerpt: 前言 大家在部署项目的时候是不是还是传到git中后去服务器pull,其实git大多数是有自动部署的方式~ 正文 宝塔 首先,要在宝塔上下载一个webhook 然后如果是私有项目的话就去终端输入cd ~/.ssh && ls查看密钥 如果没有的话就输入ssh-keygen -t rsa -C “you
permalink: /archives/519cacb7-ad7c-4024-a817-14ff6bb8cbdc
categories:
- fu-wu-duan
tags: linux
前言
大家在部署项目的时候是不是还是传到git中后去服务器pull,其实git大多数是有自动部署的方式~
正文
宝塔
首先,要在宝塔上下载一个webhook
然后如果是私有项目的话就去终端输入cd ~/.ssh && ls
查看密钥
如果没有的话就输入ssh-keygen -t rsa -C "your_email@example.com"
来生成密钥,会让你输入三个东西,没有必要的话直接回车留空即可
然后输入 cat id_rsa.pub
来查看证书内容,复制他,一会要去git中配置
接着去git上(我这里用的是gitee)把ssh链接保存
去宝塔上点击配置、新增,把下面这个脚本配置进去,注意要把你的git项目和git链接更换成你自己的
#!/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="你在服务器存放的项目路径"
# git 网址
gitHttp="刚刚保存的ssh链接"
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
查看密钥链接并且保存,一会要用
git平台
这里我用gitee的仓库来做示例
首先进入你的仓库,然后点击管理->公钥管理->添加公钥 把刚刚的公钥配置进去 ps:标题默认是你密钥的邮箱,可以自定义
添加完成后会有一个可部署公钥
添加完成后点击webhook
配置链接
配置好后去你要存放的目录中用ssh来克隆项目
最后点击测试,去看日志,就会有最近的一次提交
总结
这个方法可以有效的减少我们部署的时间,但是生产版本慎用,可以作为beta版本来快速测试线上接口
- 感谢你赐予我前进的力量