从零玩转之JPOM自动化部署本地构建 + SSH 发布 java 项目

科技资讯 投稿 9600 0 评论

从零玩转之JPOM自动化部署本地构建 + SSH 发布 java 项目

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

一键部署Jpom

本文中服务端和插件端是安装在同一个服务器中的,实际操作时根据业务情况来安装
Jpom 服务端、Jpom 插件端(安装 jpom 需要 java 环境)

安装服务端

# 提前创建好文件夹 并且切换到对应到文件夹执行命令
mkdir -p /home/jpom/server/
cd /home/jpom/server/

# apt-get 不行就换 yum 
apt-get install -y wget && wget -O install.sh https://jpom.top/docs/install.sh && bash install.sh Server jdk

初始化服务端

安装插件端

# 提前创建好文件夹 并且切换到对应到文件夹执行命令
mkdir -p /home/jpom/agent/
cd /home/jpom/agent/
apt-get install -y wget && wget -O install.sh https://jpom.top/docs/install.sh && bash install.sh Agent jdk

添加插件节点

注意要填写端口号哟

账号密码和超级管理员账号密码是两个都行哟

也可单独配置节点密码 application.yml 自定义配置了账号密码不会出现此文件

这样就完成 Jpom 的安装流程

添加SSH节点

注意: 文件目录为给对应 ssh 授权部分目录可以在 Jpom 中使用,一般用于构建发布目录、ssh 文件管理

点击分配给默认空间即可

点击关联->配置->配置项目白名单 图下所示

本地构建 + SSH 发布 java 项目

一、配置仓库信息

主要用于构建项目

二、配置项目查看构建信息,用于管理项目发布流程

    构建的项目(仓库)信息
  1. 项目的构建命令(依赖的构建环境:maven、vue、python、php)
  2. mvn clean package
  3. npm run build
  4. 构建产物的目录(项目中的相对路径)
  5. java 项目一般位于当前项目 target 目录下的某个文件
  6. vue 项目一般位于当前项目 dist 文件夹
  7. 发布目录:项目将发布服务器到哪个目录(需要已经配置到 ssh 文件目录中)
  8. 发布命令:执行发布后执行的命令,如:配置停止、启动项目

Java 项目发布命令示例

Tag="jpom-test-jar"

# 检查进程状态
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 /home/java/test/springboot-test-jar-0.0.1-SNAPSHOT.jar > /dev/null 2>&1 &

解释名词

    构建命令

springboot maven 打包

  1. 产物目录
  1. 发布操作只介绍SSH其他的JPOM查看具体实现

发布的SSH: 选择你配置好的SSH节点
发布目录: 把jar复制到指定目录
发布前命令:校验是否需要停止当前项目
发布后命令:启动项目

cd /root/jpom
echo "======================================================================="
echo "查看密钥位置:"
ls /root/weChartPayment/apiclient_key.pem
echo "复制密钥到发布目录:"
cp -p  /root/weChartPayment/apiclient_key.pem /root/jpom/wx-pay-demo/target
ls /root/jpom/wx-pay-demo/target
echo "======================================================================="
ls
echo "======================================================================="
Tag="wx-pay-demo"

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 "删除存在的程序 $pid"
    kill -9 "$pid"
    echo "删除成功准备重新启动 $pid"
  fi
else 
   echo "SpringBoot 启动成功 请等待10- 20 秒"  
fi

发布后命令


echo "开始执行启动命令" 
echo "====================================================================================================================================================="
nohup java  -jar  /root/jpom/wx-pay-demo/target/wx-play-demo-0.0.1-SNAPSHOT.jar > /root/jpom/wx-pay-demo/target/application.log 2>&1 &
echo "====================================================================================================================================================="
echo "SpringBoot 启动成功 请等待10- 20 秒" 

可以愉快的点击构建(直接构建)

微信支付Demo系统

JPOM官方网站

编程笔记 » 从零玩转之JPOM自动化部署本地构建 + SSH 发布 java 项目

赞同 (44) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽