Python 使用 Tornado 框架實現 WebHook 自動部署 Git 項目python
爲了方便開發測試或項目部署至服務器不那麼繁瑣,搞一個自動部署的小輪子也是必要的。nginx
小輪子須要涉及到 Coding 項目託管平臺(也能夠用 Github 平臺),Linux服務器的Nginx、Python( Tornado框架 )。git
同時配置項目託管平臺的我的私鑰或項目公鑰,保證 git pull
能直接拉取。github
GitHub 傳送門: https://github.com/HavenShen/gohookshell
1.下載或克隆此項目服務器
git clone git@github.com:HavenShen/gohook.git
2.部署代碼的服務器必須安裝 Python 的 Tornado框架框架
pip install tornado #或 easy_instal tornado
1.修改 main.py
中 file_path
變量路徑frontend
#但願自動部署項目路徑 file_path = '/home/wwwroot/xxx'
2.配置 Nginx
的conf文件tornado
# http 節點下增長 upstream frontends{ server 127.0.0.1:8765; } #增長 server 配置 server { listen 80; server_name xxx.xxx.com; #你的域名 location / { proxy_pass_header Server; proxy_set_header Host $http_host; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_pass http://frontends; } }
在此能夠重啓下 Nginx測試
1.運行tornado框架開啓後臺進程運行
#下面路徑修改爲你本身gohook存放目錄文件夾用戶組必須跟nginx一致 setsid python /home/wwwroot/gohook/main.py &
1.url
填你的域名 http://xxx.xxx.com/gohook
2.token
填 gohook
1.本地於服務器自動部署的git項目中使用 git 提交更新一下代碼
touch test.md git add . git commit -m "test gohook" git push -u origin master
2.查看服務器上自動部署的git項目中是否存在 test.md
done.