webhook革命: 使用fish-hook自动部署多个应用

fish-hook

一站式高效管理你多个github webhook.python

Github地址: https://github.com/dcalsky/fi...git

背景

等你辛苦创建好了静态博客,却依然要忍受每次本地更新后,还要ssh到远程从新git pull一遍的痛苦。github

当你终于用webhook handler写了一堆代码来解决这个应用的部署问题后,你依然发现,还有许许多多的项目等着你为它们写部署代码。web

要是有一个集成化的工具,在一个目录里帮我管理全部的webhook就行了!fish-hook就是为此诞生的,它最大的特点就是:极力缩短开发者花在配置上的时间,约定大于配置。shell

开始使用

安装

安装python3.5或更高版本,再用pip包管理工具安装fish-hookjson

$ pip3 install fish-hook

新建fish-hook目录

$ fish-hook init

ssh进入远程主机后,运行该命令,而且设置一个通用的端口,例如: 2333。这样就建立了名为fish的目录,这是控制全部webhook的总目录。$ cd fish进入该目录。centos

接收端: 为一个仓库建立webhook

$ fish-hook new

假如你在github上开通了一个名为blog的仓库,而且打算为其开通webhook来实现自动部署。那么就输入blog以及你要为此webhook设定的密钥。
完成后,blog的webhook接收端就部署好了。安全

发送端: 在github上建立webhook

首先打开仓库的github设置页面,而后建立github webhook,填入基本信息。
能够注意到Payload URL这一栏,前面的IP地址就是你远程主机的外网IP地址,以后是你刚刚设置的端口,斜杆后就是blog目录,与接收端的名字相同
密钥一栏固然也要与在fish-hook上设置的相同。bash

webhook

设置接受push事件后的动做

假设你使用git push推送了新的内容到blog仓库,如何执行特定的shell脚本呢?
此时的fish-hook目录是这样的:app

fish/
    config.json
    blog/
        app_config.json
        push.sh

为何有一个push.sh文件呢?就这意味着,当你仓库接受新的push事件后,fish-hook就会运行push.sh这个shell脚本,里面的内容彻底能够本身设置。

这就是所谓的约定大于配置,webhook接受到什么样的命令,就会运行相同名字的shell脚本,固然前提是你的目录里要存在这个脚本。

上线

$ fish-hook server

fish-hook为你封装了部署所需的web server。一条命令便可启动,此时全部的webhook都会被启用。

开启2333端口

centos默认开启了端口防火墙,若是你使用了一些具有安全组的云主机服务,也须要开放全部安全组哦。

$ sudo firewall-cmd --zone=public --add-port=2333/tcp --permanent

生产环境

使用Screen

screen -d -m fish-hook server

fish-hook主目录运行该命令,便可使fish-hook server持久运行下去。

webhook 事件们

events

更多帮助

请查看github仓库fish-hook

相关文章
相关标签/搜索