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

相關文章
相關標籤/搜索