命令相关
# 非阻塞命令
在 Jpom 中大部分命令都需要使用非阻塞:
- 构建命令
- 构建本地发布命令
- 构建 SSH 发布命令
- SSH 模版命令
- 脚本模版命令
非阻塞命令指执行命令后会自动退出而不是一直阻塞窗口需要按 ctrl+c 才能退出命令窗口、或者需要输入交互都命令
阻塞命令举例:
yum intall xxxxx
, 执行这样的命令需要用户确认输入才能继续执行,这样的命令就不能在 jpom 上述功能相关命令中使用,需要修改为yum install -y xxxxx
java -jar xxx.jar
, 执行这样的命令会阻塞窗口,那么在 linux 中可以使用nohup
来解决,修改为:nohup java -jar xxx.jar >>xxx.log 2>&1 &
npm run serve
,执行这样的命令窗口将一直阻塞,那么需要修改为npm run build
# java、javaw 命令
通常情况都是使用 java 命令来启动 java 项目,如: java -jar xxxx.jar
Jpom 中在 windows 环境来启动 java 项目(包括 Server.bat、Agent.bat) 因为 windows 没有 nohup 命令,使用 javaw 可以实现类似 nohup 效果并且能将控制台日志输出到指定文件
# Jpom 中多种脚本对比
脚本类型 | 存储方式 | 执行方式 | 是否支持批量执行 | 是否支持批量编辑 | 是否支持定时执行 |
---|---|---|---|---|---|
脚本列表 | 服务端 | 在服务端执行 | 否 | 否 | 支持 cron |
ssh 命令脚本 | 服务端 | ssh 远程执行 | 是 | 否 | 支持 cron |
节点脚本 | 节点(插件端) | 在节点执行 | 否 | 是 (使用服务端脚本分发) | 支持 cron |
# Jpom 中的白名单说明
Jpom 中的白名单的由来,由于项目管理都需要对项目的文件进行管理。在创建项目的时候需要确定项目的相关文件存放的路径。 那么此时由用户决定存放到哪里,显得有点冒然(不安全,有点随意)。因为服务器中有些路径已经存放重要配置文件,此时项目路径相同那么必然没有任何安全性
为什么是白名单而不是配置黑名单(禁止名单):假设设置黑名单、如果设置黑名单那么没有办法最快速收集用户不同服务器中重要文件路径,此方法也显得不合适
需要配置白名单的地方有如下:
- 节点项目目录白名单
- 节点 nginx 配置文件白名单
- 节点 ssl 证书目录白名单
- 节点分发白名单(和节点项目白名单类似)
- SSH 授权管理目录白名单
# Jpom 的参数配置
Jpom 中配置文件使用 SpringBoot 加载配置文件机制实现,配置文件中可以配置一些遵循 SpringBoot 的属性
在项目运行的根路径下的extConfig.yml
文件
- 插件端示例:
extConfig.yml
- 服务端示例:
extConfig.yml
# 触发器 (webhook、钩子)
Jpom 中的触发器可以理解为一个接口,执行这个接口会自动帮助您完成一些事情
Jpom 中的触发器可以理解为 webhook(钩子) 实现
目前 Jpom 中支持触发器的功能有如下:
- 执行构建
- 执行 SSH 脚本
- 执行服务端脚本
- 执行节点脚本
使用触发器可以实现在一定场景下实现自动执行的操作
如:提交代码后自动构建、外部系统调用触发器来实现执行 Jpom 系统中的相关脚本
帮助我们改善此文档 (opens new window)
上次更新: 2023/09/20, 13:11:05