目录 | Table of Contents
还是尽量维持每月至少一更的节奏吧。最近在玩Azure云,发现它的自动部署功能实在是太棒了。尝试在自己的机器设置Github自动部署功能,其实上是非常简单的。我们只需要一个 几十行的python脚本监听一下就可以了。
使用工具
一个基于python的脚本,Github地址 https://github.com/logsol/Github-Auto-Deploy
Github 提供的webhooks 工具,在项目 Settings -> Webhooks & Services -> Add webhook
安装Github Auto Deploy 脚本
python 就不讲述怎么安装了,一般机子上面都有。该脚本由两部分组成,GitAutoDeploy.py 是主程序,GitAutoDeploy.conf.json.example是设置文件,将设置文件改成自己喜欢的名字,然后放在喜欢的地方。然后打开主程序,里面很显然有句话是连接到设置文件的,把它改成自己设置文件的位置就可以了。
设置文件的写法
{ "port": 12345监听的端口, "repositories": [{ "url": "https://github.com/masterchan/moegirl_iOS_Server这里是监听的地址", "path": "/var/www/html/moegirl项目的地址", "deploy": "sh ~/run/deploy.sh >> /var/log/github_auto_deploy.log--webhook触发的事件" }] }
然后启动程序并保持程序运行
python GitAutoDeploy.py
启用Github 的Webhook
在项目的Settings中设置Deploy Key,或者更方便,在Personal Setting里面设置SSH keys,因为服务器经常在各种情况反复使用,所以弄个全局的也无所谓吧。
然后在项目中添加Webhook,非常简单,如果不成功还可以重新发送请求,这时应该能看到服务器那边有响应了,如果没有就进行调试吧。检查放火墙之类的。
使用系统服务开机自动运行Auto Deploy程序
这点跟KanColle服务器构建方法 中设置node.js 的deamon非常相似创建一个文件,然后 systemctl enable 服务、systemctl start 服务
[Unit] Description=GitHub Auto Deploy Tool After=network.target remote-fs.target nss-lookup.target [Service] Type=simple User=root Group=root ExecStart=/usr/bin/python /var/www/python/GitAutoDeploy.py # Give the script some time to startup TimeoutSec=300 [Install] WantedBy=multi-user.target