在 Jpom 中如何使用 DSL 项目来管理 TOMCAT
# 前言
本文主要讲解如果使用 Jpom 中的 DSL 项目 + 在线构建来实现日常管理 tomcat + 部署相关相关使用流程
注意:本文采用一键安装同时基于 2.10.16 版本讲解,系统为 centos
# 需要准备的环境
- Jpom 服务端
- 安装 jpom 需要 java 环境
- 构建需要 maven 环境
- Jpom 插件端
- 安装 jpom 需要 java 环境
- Tomcat 安装包
- 一个 tomcat war 包项目代码仓库(案例中使用 java 项目)
# 安装插件端推荐命令
推荐命令会自动检查环境中是否存在 jdk 如果不存在将自动安装 jdk。并且将插件端安装到默认目录:/usr/local/jpom-agent
一般情况建议自行安装,如果不需要自动安装删除命令最后的
jdk
即可
# 安装插件端和 jdk 环境
curl -fsSL https://jpom.top/docs/install.sh | bash -s Agent jdk+default
2
# 安装服务端推荐命令
推荐命令会自动检查环境中是否存在 jdk 和 maven 如果不存在将自动安装 jdk 和 maven。并且将服务端安装到默认目录:/usr/local/jpom-server
一般情况建议自行安装,如果不需要自动安装删除命令最后的
jdk+mvn
即可
# 安装服务端和 jdk、maven 环境
# 安装插件端和 jdk 环境
curl -fsSL https://jpom.top/docs/install.sh | bash -s Server jdk+mvn+default
2
3
😋
案例就默认您已经安装好上述环境(jpom 插件端、jpom 服务端、maven 插件)
😋
案例就默认您已经初始好服务端并且配置了节点
# 创建 tomcat 项目
# 配置项目白名单
需要提前配置白名单路径奥,不知道白名单路径作用的请查阅文档
# 配置远程下载 host
文档演示中使用远程下载 tomcat 文件并解压,所以需要提前配置下载的 host
# 创建项目
进入节点管理>>管理>>项目管理>>项目列表,进行项目创建
# 下载 tomcat 安装包
配置剔除文件夹为 1 ,是因为 tomcat 安装包里面会自动包含一层文件夹名(apache-tomcat-10.0.27),我们这里将 tomcat 所有文件解压到项目根目录所以需要剔除第一级文件夹
# 配置 DSL 脚本
这里配置 DSL 脚本是用来获取 tomcat 当前状态,因为启动、停止 tomcat 我们已经使用 tomcat 提供的默认脚本来实现了。
保存后点击编辑,查看脚本 id
复制脚本 id 、到项目 DSL 内容替换 status 的 scriptId 字段
# 管理 tomcat
# 启动
这里发现启动时候有错误信息,通过排查文件是肯定存在的。那么就是文件执行权限的问题了,这里我们需要将 tomcat bin 目录添加可执行权限
# 需要自行替换为您的项目实际路径
chmod +x /data/jpom/tomcat/bin/*.sh
2
执行前
执行后
**再次执行启动
# 停止、重启
# 愉快的管理 tomcat
到这里您可以通过 tomcat 管理页面来管理 tomcat 的状态、编辑文件、下载文件、上传文件、删除文件)等。
如果您想通过 jpom 查看 tomcat 的日志文件,您可以通过文件追踪、日志阅读(日志搜索)相关功能来实现,详情可以查阅其他文档
# 构建发布
# 创建项目仓库
这里我们就默认您已经会配置仓库了
文档使用 jpom 案例仓库:https://gitee.com/keepbx/Jpom-demo-case (opens new window)
# 配置构建发布项目
产物目录:springboot-test-war/target/springboot-test-war-2.7.1.war 需要根据您项目打包后 war 实际路径替换
二级目录:webapps 这里,我们将 war 发布到 tomcat 项目的目录下的 webapps 目录下
# 附件
# DSL配置内容
# scriptId 可以是项目路径下脚本文件名或者系统中的脚本模版ID
description: 测试
run:
start:
# scriptId: project.sh
scriptId: ./bin/startup.sh
scriptArgs:
status:
# scriptId: project.sh
scriptId: c46d184b642f42e1b210c6c8a036a463
scriptArgs:
stop:
# scriptId: project.sh
scriptId: ./bin/shutdown.sh
scriptArgs:
# restart:
## scriptId: project.sh
# scriptId: eb16f693147b43a1b06f9eb96aed1bc7
# scriptArgs: restart
# scriptEnv:
# "boot_active": test
file:
# 备份文件保留个数
# backupCount: 5
# 限制备份指定文件后缀(支持正则)
# backupSuffix: [ '.jar','.html','^.+\.(?i)(txt)$' ]
config:
# 是否开启日志备份功能
# autoBackToFile: true
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 获取 tomcat 状态脚本
Tag="=${PROJECT_PATH}"
pid=$(ps -ef | grep -v 'grep' | egrep $Tag| awk '{printf $2 " "}')
#echo "$pid"
if [ "$pid" != "" ]; then
echo "running:$pid"
else
echo "boot is stopped"
fi
2
3
4
5
6
7
8
9