最近基于JPOM做了二次开发代替了目前的jenkins+脚本体系,感觉还是挺实用的,这里简单介绍下..
其实还有个华康的项目,但是因为我们VPN硬性要求windows环境,所以才用了这套。
Jpom是一款简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件。
在使用Jpom后:
1)使用浏览器登录方便快捷管理项目
2)界面形式实时查看项目运行状态以及控制台日志
3)运维有对应的账号密码不需要知道服务器密码(并且有操作日志)
4)集群项目使用项目分发一键搞定多机部署
5)项目状态监控异常自动报警
6)在线构建不用手动上传项目包
1)创建、修改、删除项目、Jar包管理
2)实时查看控制台日志、备份日志、删除日志、导出日志
3)cpu、ram 监控、导出堆栈信息、查看项目进程端口、服务器状态监控
4)多节点管理、多节点自动分发
5)实时监控项目状态异常自动报警
6)在线构建项目发布项目一键搞定
7)多用户管理,用户项目权限独立(上传、删除权限可控制),完善的操作日志
8)系统路径白名单模式,杜绝用户误操作系统文件
9)在线管理Nginx配置、ssl证书文件
10)Tomcat状态、文件、war包在线实时管理
由于环境特殊,这台服务器需部署在windows环境下并用VPN连接云上的服务器才行,故这里只考虑windows系统下搭建。
3.1、安装的环境要求
1)JDK 1.8+
2)完整安装JDK环境(jdk的lib目录需要包含tools.jar)
3)系统配置环境变量JAVA_HOME
3.2、下载安装包
地址:https://gitee.com/keepbx/Jpom/attach_files
3.3、解压文件
server-x.x.x-release 目录为服务端的全部安装文件
3.4、安装服务端
用命令运行(Server.sh、Server.bat)
3.5、安装插件端
agent-x.x.x-release 目录为插件端的全部安装文件,上传到对应服务器,用命令运行(Agent.sh、Agent.bat)
3.6、访问JPOM
地址:http://IP:2122
1)初始化密码
2)首页
3.7、jpom配置文件(extConfig.yml)参考
jpom: # jpom 数据存储路径, 如果调试模式运行默认路径为【/jpom/】,安装运行默认为jar包文件的父级 path: authorize: # api接口请求token 长度要求大于等于6位,字母数字符号组合 token:user: # 最多能创建多少个用户 maxCount: 50 # 用户连续登录失败次数,超过此数将被限制登录 alwaysLoginError: 8 # 当ip连续登录失败,锁定对应IP时长,单位毫秒 ipErrorLockTime: 60*60*5*1000consoleLog: # 是否记录接口请求日志 reqXss: true # 是否记录接口响应日志 reqResponse: truelog: # 日志文件的编码格式,如果没有指定就自动识别,自动识别可能出现不准确的情况 fileCharset: # 查看日志时初始读取最后多少行(默认10,0不读取) intiReadLine: 30db: # 日志存储条数,将自动清理旧数据,配置小于等于零则不清理 logStorageCount: 200000# 构建相关配置build: # 最多保存多少份历史记录 maxHistoryCount: 5000 # 单个最多保存多少份历史记录 itemMaxHistoryCount: 80
4.1、JPOM发布流程规范
1)pom.xml中war包命名统一为"项目简称_环境简称",如oa_prod,产物默认输出位置为:target/oa_prod.war
2)pom.xml中区分不同环境的配置(生产、业测、综测)
3) 项目名称统一命名为:"项目简称_环境简称",每个项目默认配置3个环境(生产、业测、综测)
4)JPOM项目构建命令统一格式为
生产环境统一为:
mvn clean package -U -P prod sonar:sonar -Dsonar.host.url=http://xxxx:9000/ -Dsonar.projectName="项目别名"
其他环境为:
mvn clean package -U -P 环境简称
5)JPOM发布操作统一勾选rsync选项,发布端口默认为8888
6)rsync发布目录统一为:
rsync@服务器IP::jpom
6)不同环境发版脚本统一命名为"jpom_项目简称_环境简称.sh",默认路径为:/home/scripts/jpom_项目简称_环境简称.sh
4.3、发布流程
SVN-->JPOM-->应用服务器发布-->钉钉提示
其实这里做了二次开发的地方主要是添加了rsync来传输war包和钉钉提示的功能..
4.4、JPOM系统常见功能
1)SSH管理
为了实现对服务器的访问,首先需要在平台添加服务器登录信息。
点击列表里的 终端 按钮,可以在新页签中开启一个快速SSH命令行终端,执行各类命令。此Web模式的命令行对命令智能补全,切换历史命令等支持不佳。
点击列表里的 文件 按钮,则在新页签中进入文件浏览模式。当选择一个文本文件,再次点击终端时,自动进入文本跟踪模式。查看系统日志使用此功能特别方便。
2) 节点管理
通过为目标服务器安装客户端代理,能够实现更加深入的服务器管理。有两种方式注册节点,第一种为完全新建节点,第二种为在SSH连接中创建节点。建议采用第二种。
配置如下:
配置成功后,节点列表菜单中将显示对应节点信息。这里列出了各节点Java运行时的相关信息
3)在线构建
在 构建列表 菜单中添加新的配置项,实现对业务项目代码的打包与发布。
配置如下:
点击指定项目的 构建 按钮,进行项目打包与发布,并在弹出的窗口中显示发布过程日志。点击当前构建ID列,也可快速查看当前或最近的构建日志
进入构建历史列表,点击构建ID列,查看或下载各历史构建日志。目前系统默认保存最近3次的构建日志。点击 下载 按钮可下载指定版本项目包,点击 回滚 按钮可对指定版本跳过打包环节而直接重新发布。
4)用户管理
在角色管理中,通过 编辑 按钮设定被分配的功能,通过 动态 按钮设定被分配的系统
结合日常使用,标准功能分配如下
以上为JPOM的部分功能展示,有兴趣的朋友可以测试一下~