Python 使用 Tornado 框架實現 WebHook 自動部署 Git 項目

gohook

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.pyfile_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 &

配置 Coding 項目 WebHook

1.url 填你的域名 http://xxx.xxx.com/gohook

2.tokengohook

測試

1.本地於服務器自動部署的git項目中使用 git 提交更新一下代碼

touch test.md
git add .
git commit -m "test gohook"
git push -u origin master

2.查看服務器上自動部署的git項目中是否存在 test.md

done.

相關文章
相關標籤/搜索