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

一键部署Jpom

本文主要介绍: 如何从零开始使用一键安装的方式安装 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



初始化服务端

访问ip:2122/

安装插件端

# 提前创建好文件夹 并且切换到对应到文件夹执行命令
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 信息、便于构建后发布到对应服务器中

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

点击分配给默认空间即可

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

这样子就可以操作ssh里面的目录文件了

本地构建 + SSH 发布 java 项目

本文主要介绍:如何从零开始使用 Jpom 中的构建功能快速实现将项目从仓库中构建并发布到服务器中并启动项目

一、配置仓库信息

主要用于构建项目

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

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



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 &

解释名词

  1. 构建命令

springboot maven 打包

  1. 产物目录

打完包的jar的地址相对路径当前模块下的target

  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 项目的更多相关文章

  1. 【linux】【jenkins】自动化运维四 整合gitlab、docker发布java项目

    jenkins发布java项目 过程参考发布vue项目.https://www.cnblogs.com/jxd283465/p/11543431.html 大同小异. vue建立的是Freestyle ...

  2. Linux上部署web服务器并发布web项目-转

    Linux上部署web服务器并发布web项目   近在学习如何在linux上搭建web服务器来发布web项目,由于本人是linux新手,所以中间入了不少坑,搞了好久才搞出点成果.以下是具体的详细步骤以 ...

  3. jenkins在windows上自动化部署.Net(.Net Core)项目

    前言 什么是持续集成呢?Continuous integration(CI).持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集成. ...

  4. Jenkins+maven+gitlab自动化部署之构建Java应用(五)

    前面几篇文章介绍jenkins部署以及配置,接下来我们,就介绍下如何使用jenkins发布应用. 1)新建项目 jenkins首页,点击左上新建任务,出现下图,填写对应信息,然后点击确定: 2)项目参 ...

  5. Jenkins自动化CI CD流水线之8--流水线自动化发布Java项目

    一.前提 插件:Maven Integration plugin 环境: maven.tomcat 用的博客系统代码: git clone https://github.com/b3log/solo. ...

  6. Linux上部署web服务器并发布web项目

    近在学习如何在linux上搭建web服务器来发布web项目,由于本人是linux新手,所以中间入了不少坑,搞了好久才搞出点成果.以下是具体的详细步骤以及我对此做的一些总结和个人的一些见解,希望对跟我一 ...

  7. 从零开始部署发布Java项目到服务器的Docker中

    本以为很简单,由于没用过docker和java,本文将会阐述一路遇到的拦路虎. 首先,写好Java项目,本地跑通. 可能会遇到的问题: 1.jar包正常运行,war包404: 如何打包很多教程都有介绍 ...

  8. 利用jenkins做项目的自动化部署

    最近领导要求上海本地的项目需要使用进jenkins实现自动化部署,以便可以直接将项目移交给运维的同学,减轻开发的工作量.记录下这次爬坑的过程. 一.前言 Jenkins是基于Java开发的一种持续集成 ...

  9. 一次Linux自动化部署尝试

    最近做一个项目临近测试,购买的是阿里云的服务器,每次部署都是手动打包war,然后上传到服务器,然后修改配置文件,不仅繁琐,而且费时,就思索着找一个一键式的部署方式,今天终于腾出时间来做这件事,记录一下 ...

  10. jenkins搭建自动化部署平台(svn+tomcat重启)

    原文链接:http://blog.csdn.net/zjs40/article/details/51818322 jenkins 自动化部署和集成代码的平台 可以将Git svn 上的代码 check ...

随机推荐

  1. 换个脑袋,做个小练习------四则运算系统的随机出题的jsp实现

    四则运算出题系统网页界面的实现(别期待,只有俩操作数) index.jsp <%@ page contentType="text/html;charset=UTF-8" la ...

  2. 在CentOS上编译最新版linux内核(linux-5.19.9)

    从官网下载最新版的Linux内核源码,本教程使用linux-5.19.9进行编译. 实验环境(CentOS-Stream-8) $ uname -a Linux localhost.localdoma ...

  3. java中foreach循环用法详解

    前言 在前面的文章中,千锋壹哥给大家讲解了for.while.do-while三种循环结构,并讲解了如何跳出循环的几种方式,比如break.continue.return等.但是截止到目前,与循环相关 ...

  4. 美团面试:熟悉哪些JVM调优参数?

    本文已经收录到Github仓库,该仓库包含计算机基础.Java基础.多线程.JVM.数据库.Redis.Spring.Mybatis.SpringMVC.SpringBoot.分布式.微服务.设计模式 ...

  5. 【Visual Leak Detector】配置项 ForceIncludeModulesmd

    说明 使用 VLD 内存泄漏检测工具辅助开发时整理的学习笔记.本篇介绍 VLD 配置文件中配置项 ForceIncludeModules 的使用方法. 同系列文章目录可见 <内存泄漏检测工具&g ...

  6. mixins使用混入引入组件,并可以使用公共函数。组件类同名函数可以替代公共函数。使用$ref获得子元素数据和元素dom节点。使用$parents获得父元素数据。slot插槽的使用

    父组件: <template> <div class="box"> <Header > <div slot="left" ...

  7. [ACM]快速排序模板

    思路 快排基本思路应该就是二分+递归,从两侧同时(实则先从右往左)往中间找,同时和参变量对比,发现位置颠倒后交换位置,然后通过二分将其一块一块的分割开,直到分割到一个元素位置,即完成了快排. 代码 # ...

  8. 你不得不了解的CSS数据类型

    在我之前的开发中,CSS对于我来说,要用什么找什么,对CSS的了解并不算深入:在我刚开始深入学习CSS时,第一个遇到的就是CSS数据类型,我听说过JS.TS的数据类型,CSS怎么也有数据类型?但是随着 ...

  9. Nuxtjs实现服务端渲染和静态化站点

    本文将介绍如何使用Nuxtjs对vue项目进行ssr和静态化处理. Nuxtjs简单介绍 首先,我们简单了解下Nuxtjs框架,Nuxt.js是一个基于Vue的通用框架,主要用于解决Vue项目的服务端 ...

  10. 谈一谈Python中的装饰器

    1.装饰器基础介绍 1.1 何为Python中的装饰器? Python中装饰器的定义以及用途: 装饰器是一种特殊的函数,它可以接受一个函数作为参数,并返回一个新的函数.装饰器可以用来修改或增强函数的行 ...