赞
踩
sudo -u www ssh -T git@gitee.com
sudo -u root ssh -T git@gitee.com
看清楚是用那个,建议用WWW帐号权限,不能用ROOT权限(最高权限不建议)
所以生成SSH是要注意要用那个帐号来生成:
生成钥匙代码:
ssh-keygen -t rsa -C “xxxxx@xxxxx.com”
这个方式生成的钥匙默认是ROOT帐号生成,生成路径:/root/.ssh
查看公钥:
cat /root/.ssh/id_rsa.pub
生成钥匙代码:
sudo -u www ssh-keygen -t rsa -C "xxx@xxx.com"
一直回车,生成秘钥成功,如下图
这个方式就是www帐号生成的权限,生成路径:/home/www/.ssh
查看公钥:
cat /home/www/.ssh/id_rsa.pub
登录码云,找到需要部署的项目,把刚刚生成的公钥添加到码云上
//分清楚用那个权限
//root
ssh -T git@gitee.com
sudo -u root ssh -T git@gitee.com
//www
sudo -u www ssh -T git@gitee.com
链接成功如下图
通过宝塔的webhook插件,实现把码云上的项目自动同步到web服务器指定路径下
确保web服务器里安装了git 可通过git –version查看
git --version
进入宝塔面板,软件管理-》宝塔插件,搜索wekhook,然后安装即可
添加webhook
脚本内容:
脚本代码:
# !/bin/bash echo "" # 输出当前时间 date --date='0 days ago' "+%Y-%m-%d %H:%M:%S" echo "-------开始-------" # 判断宝塔 WebHook 参数是否存在 if [ ! -n "$1" ]; then echo "param参数错误" echo "-------结束-------" exit fi # web服务器 git 项目路径 gitPath="/www/wwwroot/xxxxx" # 码云项目 SSH 网址 (重点: 千万不要用 https 地址) gitHttp="git@gitee.com:xxx/xxxxx.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 "-----拉取成功-----" exit else echo "该项目路径不存在" echo "-------结束-------" exit fi
注意:添加完后,点击编辑查看脚本内容是否正确,在上图输入框输入的命令会被过滤,所以要重新添加shell命令进去
接下来就是在码云等其他平台里做配置了,这里以码云为例
打开码云仓库,添加WebHooks
设置私有仓库代码同步
更改宝塔hook脚本中的仓库地址为码云私有项目仓库的SSH连接地址
至此完毕,如果不成功,可以尝试更新一下webhook
登录xshell之后重启一下宝塔服务
bt restart
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。