"Webhooks 在校生需要鼓励,奖励小弟一个 star 可以去 [链接] 刚学 springboot 的也可以参考该工程。哈哈。 java 执行预设命令,通过 http 调用,兼容 linux 和 windows。 该小工具的问世,主要是有目的而来的。我通过该项目进行博客,和别人在我服务器上的另一个项目的部署更新,只 .."

自己无聊写的自动化部署小工具 : Webhooks

本贴最后更新于 502 天前,其中的信息可能已经天翻地覆

Webhooks

在校生需要鼓励,奖励小弟一个 star 可以去 https://github.com/xjtushilei/Webhooks

刚学 springboot 的也可以参考该工程。哈哈。

java 执行预设命令,通过 http 调用,兼容 linux 和 windows。

该小工具的问世,主要是有目的而来的。我通过该项目进行博客,和别人在我服务器上的另一个项目的部署更新,只需要提交到 git,自动触发 webhooks,来 post 访问我的 api,则网站自动更新,不失为一种高效的自动化部署方案。

使用方法

前期准备

  1. 准备数据库 mysql 5.x 以上,创建一个数据库 commond
  2. 数据库配置文件位置src/main/resources/application-prod.properties 根据情况修改
spring.datasource.url=jdbc:mysql://localhost:3306/command?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=command
spring.datasource.password=command

编译安装

  1. 服务器安装 mvn3.x,java1.8 ,tomcat8.5 以上
  2. mvn package执行编译打包,将 target 目录下的 war 包放入 tomcat 启动,注意 logs 是否报错

使用

  1. 在之前的数据库里,看到一张表,然后打开它,创建 指令 name 和 指令 command, 如 name:“mvn” command:“mvn -v”
  2. 远程调用:

举例

远程调用:

http://ip:port/execLinux/mvn

且数据库里存了“mvn”命令对应的是“mvn -v”,则执行得到的结果是:

Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: /home/ubuntu/apache-maven-3.3.9
Java version: 1.8.0_131, vendor: Oracle Corporation
Java home: /home/ubuntu/jdk1.8.0_131/jre
Default locale: en_US, platform encoding: ANSI_X3.4-1968
OS name: "linux", version: "4.4.0-53-generic", arch: "amd64", family: "unix"

  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    2147 引用 • 7240 回帖 • 1059 关注
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    515 引用 • 1140 回帖 • 929 关注
感谢    关注    收藏    赞同    反对    举报    分享
12 回帖    
请输入回帖内容...
  • flhuoshan      

    感谢分享,已 follow

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • yangyujiao      

    已 star,加油。

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • xjtushilei            

    谢谢大佬

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • xjtushilei            

    谢谢大佬!

    感谢    赞同    反对    举报    分享       回复
  • zk123      

    已 star(ps : 纯 socket 会不会更好点)

    感谢    赞同    反对    举报    分享       回复
  • soulsuxd      

    🎉 我大学时候在干嘛啊

    感谢    赞同    反对    举报    分享       回复
  • itzjm            

    发布其他项目如何操作,怎么感觉没什么卵用啊?

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • xjtushilei            

    比如你的代码在 github 上,每次 push 上去,github 自带的 webhook 就会就触发一个服务器的指令。这个指令就是自动从服务器拉取最新的代码,然后编译打包,然后 mv 到这个程序需要到的地方,然后替换,有必要重启容器也可以,最后就运行了。

    感谢    赞同    反对    举报    分享       回复
  • pynix      

    可以看看 github 的 webhook 接口,也可以看看其他自动化部署工具。。。。

    你这连最基本的认证都没有,谁都可以执行命令。。。。东西垃圾,再多 github star 有毛用。。。

    2 回复 
    感谢    赞同    反对    举报    分享       回复
  • xjtushilei            

    谢大神指点

    感谢    赞同    反对    举报    分享       回复
  • tmedivh      

    厉害了,已 star

    感谢    赞同    反对    举报    分享       回复
  • ice            

    这么好的黑客派,为啥还有你这样的喷子哦...

    感谢    赞同    反对    举报    分享       回复
请输入回帖内容...