由于业务的需求,我需要将每次写好的代码编译好后,并且通过ftp工具远程传到服务器上。 但是,这样的操作带来的问题是:整个的过程变得相当的复杂。
于是,就有了这篇文章。
我们可以这样理解:
当我们把代码提交到github上时github发起一次请求给服务器服务器接受请求后,执行拉取git的脚本这样就实现了整个项目的自动部署。
你需要安装yum、git、go
如果你已经安装过,那么你就可以跳过相应的步骤
并且默认你会ssh秘钥配对,如果不会请翻到最后。
开源项目地址:https://github.com/adnanh/webhook
1、在一个目录下克隆github项目 我的在/root/test下拉取项目,项目名也叫test(拉取的项目存在于/root/test/test)
2、在同级目录新建hooks.json(位于/root/test/hooks.json)
定义一些需要webhook服务的钩子。首先创建一个名为hooks.json. 此文件将包含webhook将提供的钩子数组。查看钩子定义页面,查看钩子可以包含哪些属性以及如何使用它们的详细描述。
[ { "id": "deploy", "execute-command": "./deploy.sh", "command-working-directory": "/root/test/" } ]3、新建你要执行的shell脚本,可以直接执行看脚本是否可用./deploy.sh 或者 sh deploy.sh 这里为了测试,只有拉取,实际应该比这更复杂 delploy.sh(位于/root/test/deploy.sh)
#! /bin/bash cd /root/test/test git pull运行webhook,默认端口9000,所以我们需要开放9000端口。
/root/go/bin/webhook -hooks hooks.json -verbose在浏览器中访问,控制台即可打印相应日志 这里的deploy与你上方hooks.json文件中的id一致
http://ip:9000/hooks/deploy如果上方能够测试成功,那么直接复制url到下方配置中,配置好后他会自动发起一次请求。
使用nohup来使我们的webhook后台运行并且打印日志:log.txt 为存放日志的文件
[root@master test]# nohup /root/go/bin/webhook -hooks hooks.json -verbose >log.txt 2>&1& [1] 3064然后你就可以在自己电脑上写代码,写好后,他自己就会部署,爽歪歪。
参考: 1、linux下yum 2、git生成证书 3、 钩子自动部署 4、webhook 5、linux后台运行的几种方式
关注公众号:博奥思园 还是那句话:你的支持是我前进的最大动力
