通過寶塔的webhook插件,實現把碼雲上的項目自動同步到web服務器指定路徑下
- 確保web服務器裏安裝了git 可通過git –version查看
- 進入寶塔面板,軟件管理-》寶塔插件,搜索wekhook,然後安裝即可
- 添加hook
腳本內容:
腳本代碼:
#!/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/zixue"
#git 網址
gitHttp="[email protected]:xxxx.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
注意:添加完後,點擊編輯查看腳本內容是否正確,在上圖輸入框輸入的命令會被過濾,所以要重新添加shell命令進去
- 查看祕鑰
接下來就是在碼雲等其他平臺裏做配置了,這裏以碼云爲例
- 打開碼雲倉庫,添加WebHooks
- 設置私有倉庫代碼同步
首先登錄服務器 輸入命令cd ~/.ssh && ls查看有沒有SSH key
如果沒有,使用命令ssh-keygen -t rsa -C "[email protected]"生成。如下圖所示:
複製好id_rsa.pub文件內容後,打開碼雲的私有項目,依次點擊:管理->添加公鑰,如圖:
在碼雲上添加好公鑰後,使用ssh -T [email protected]測試SSH連接:
更改寶塔hook腳本中的倉庫地址爲碼雲私有項目倉庫的SSH連接地址
至此完畢,如果不成功,可以嘗試更新一下webhook