Java小强个人技术博客站点    手机版
当前位置: 首页 >> 开源 >> 在线构建自动部署软件JPOM

在线构建自动部署软件JPOM

11101 开源 | 2023-3-14

简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件

https://jpom.top/pages/install/ 

jpom-logo.jpg

介绍:

方便的用户管理

用户操作监控,监控指定用户指定操作以邮件形式通知

多用户管理,用户项目权限独立(上传、删除权限可控制),完善的操作日志,使用工作空间隔离权限

账号可以开启 MFA 两步验证提高账号安全性

界面形式实时查看项目运行状态、控制台日志、管理项目文件

在线修改项目文本文件

Docker 容器管理、Docker swarm 集群管理 Docker UI

在线 SSH 终端,让您在没有 Xshell、FinalShell 等软件也能轻松管理服务器 SSH终端

登录 Jpom 系统后不需要知道服务器密码

能指定 SSH 禁止执行的命令,避免执行高风险命令,并且能自动执行命令日志

设置文件目录,在线查看管理对应项目文件及配置文件

SSH 命令模版在线执行脚本还能定时执行

在线修改文本文件

轻量的实现了简单的"堡垒机"功能

使用项目分发一键搞定集群项目多机部署

在线构建不用手动更新升级项目 在线构建

支持拉取 GIT、SVN 仓库

支持容器构建(docker)

支持 SSH 方式发布

支持定时构建

支持 WebHook 形式触发构建

支持在线编辑 nginx 配置文件并自动 reload 等操作 Nginx

管理 nginx 状态,管理 SSL 证书

项目状态监控异常自动报警、自动尝试重启

支持邮件 + 钉钉群 + 微信群通知,主动感知项目运行状况

节点脚本模版+定时执行或者触发器,拓展更多功能

重要路径白名单模式,杜绝用户误操作系统文件


Server端安装

apt-get install -y wget && wget -O install.sh https://jpom.top/docs/install.sh && bash install.sh Server jdk+maven

备注:

默认安装目录为:/usr/local/jpom-server

Maven安装目录为:/usr/maven/apache-maven-3.6.3

这里安装的jdk实际上jre运行时环境,需要自己再安装JDK并配置一下JAVA_HOME


打开面板链接:http://IP:2122/,配置相关账号信息


Agent端安装

apt-get install -y wget && wget -O install.sh https://jpom.top/docs/install.sh && bash install.sh Agent jdk+maven

备注:

默认安装目录为:/usr/local/jpom-agent

Agent是实际部署程序的机器,也需要JDK环境


快速把节点配置到Server

这里参考Server面板中的“快速安装插件端”

(1)

curl -fsSL https://jpom.top/docs/install.sh | bash -s Agent jdk+default --auto-push-to-server \'http://192.168.2.22:2122/api/node/receive_push?token=2b8e49e5c15b3269cf8ba73ca8e076a2f9e2856d\&workspaceId=DEFAULT\'

或者

sh ./bin/Agent.sh restart -s --auto-push-to-server \'http://192.168.2.22:2122/api/node/receive_push?token=2b8e49e5c15b3269cf8ba73ca8e076a2f9e2856d\&workspaceId=DEFAULT\' && tail -f ./logs/agent.log

执行后在面板中,执行结果,中点一下看到节点的连接才能看到节点

(2)

也可以在面板中,由系统管理,点一下,切为功能管理-资产管理-机器管理,来手动添加节点


配置AgentSSH信息

由系统管理,点一下,切为功能管理-资产管理-SSH管理,添加刚才节点的SSH信息

然后点关联-关联工作空间ssh-配置-文件目录,从这里配置程序的发布目录


配置仓库

有多重配置方式,这里选择使用通过私人令牌导入仓库,(https://jpom.top/pages/practice/privateToken-import-repository/  )

这里本人在Gitee上创建了一个空的SpringBoot项目名字就叫springBootFast,只有一个Controller接口来验证是否发布成功

package com.example.springbootfast.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
    @RequestMapping("/hello")
    public String getHello(){
        return "Hello";
    }
}

构建命令这里采用,可以定制Maven命令

mvn clean package -Dmaven.test.skip=true

产物目录,具体名称是POM中定制的

/target/springBootFast-0.0.1-SNAPSHOT.jar

发布操作选择SSH

发布后命令,这个是指在节点机器,发布程序后执行的脚本,以下脚本意思为,查询正在运行的Java程序终止,并再启动,等于一个重启操作

Tag="springBootFast"

# 检查进程状态
pid=$(ps -ef | grep -v 'grep' | egrep $Tag| awk '{printf $2 " "}')
if [ "$pid" != "" ]; then      
  echo -n "boot ( pid $pid) is running" 
  echo 
  echo -n $"Shutting down boot: "
  pid=$(ps -ef | grep -v 'grep' | egrep $Tag| awk '{printf $2 " "}')
  if [ "$pid" != "" ]; then
    echo "kill boot process"
    # kill  "$pid"
    kill -9 "$pid"
  fi
else 
   echo "boot is stopped" 
fi
# 启动项目
nohup java -Dappliction=$Tag -jar /usr/local/jars/springBootFast-0.0.1-SNAPSHOT.jar > /dev/null 2>&1 &

其他配置-差异构建,防止重复构建,只有新增提交时才触发构建


一般因为第一次构建时,因为要下载Jar包,因此时间比较久,第二次构建时时间会很快。

推荐您阅读更多有关于“ 开源 Git 在线构建 自动部署 jpom ”的文章

上一篇:权限框架Sa-Token 下一篇:HuTool工具箱验证JWT生成Token失败

猜你喜欢

发表评论:

评论:

回复 Java小强 评论于 2023-03-14 10:08
之所以推荐这款软件,国人开发,功能和文档比较齐全,而且非常易于上手