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.