系列文章目录
文章目录
- 系列文章目录
- 前言
前言
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。
简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件
https://jpom.top/pages/install/
介绍:
方便的用户管理
用户操作监控,监控指定用户指定操作以邮件形式通知
多用户管理,用户项目权限独立(上传、删除权限可控制),完善的操作日志,使用工作空间隔离权限
账号可以开启 MFA 两步验证提高账号安全性
界面形式实时查看项目运行状态、控制台日志、管理项目文件
在线修改项目文本文件
Docker 容器管理、Docker swarm 集群管理 Docker UI
在线 SSH 终端,让您在没有 Xshell、FinalShell 等软件也能轻松管理服务器 SSH终端
登录 Jpom 系统后不需要知道服务器密码
能指定 SSH 禁止执行的命令,避免执行高风险命令,并且能自动执行命令日志
设置文件目录,在线查看管理对应项目文件及配置文件
SSH 命令模版在线执行脚本还能定时执行
在线修改文本文件
轻量的实现了简单的"堡垒机"功能
使用项目分发一键搞定集群项目多机部署
在线构建不用手动更新升级项目 在线构建
支持拉取 GIT、SVN 仓库
支持容器构建(docker)
支持 SSH 方式发布
支持定时构建
支持 WebHook 形式触发构建
支持在线编辑 nginx 配置文件并自动 reload 等操作 Nginx
管理 nginx 状态,管理 SSL 证书
项目状态监控异常自动报警、自动尝试重启
支持邮件 + 钉钉群 + 微信群通知,主动感知项目运行状况
节点脚本模版+定时执行或者触发器,拓展更多功能
重要路径白名单模式,杜绝用户误操作系统文件
Server端安装
apt-get install -y wget && wget -O install.sh https://jpom.top/docs/install.sh && bash install.sh Server jdk+maven
备注:
默认安装目录为:/usr/local/jpom-server
Maven安装目录为:/usr/maven/apache-maven-3.6.3
这里安装的jdk实际上jre运行时环境,需要自己再安装JDK并配置一下JAVA_HOME
打开面板链接:http://IP:2122/,配置相关账号信息
Agent端安装
apt-get install -y wget && wget -O install.sh https://jpom.top/docs/install.sh && bash install.sh Agent jdk+maven
备注:
默认安装目录为:/usr/local/jpom-agent
Agent是实际部署程序的机器,也需要JDK环境
快速把节点配置到Server
这里参考Server面板中的“快速安装插件端”
curl -fsSL https://jpom.top/docs/install.sh | bash -s Agent jdk+default --auto-push-to-server \'http://192.168.2.22:2122/api/node/receive_push?token=2b8e49e5c15b3269cf8ba73ca8e076a2f9e2856d\&workspaceId=DEFAULT\'
或者
sh ./bin/Agent.sh restart -s --auto-push-to-server \'http://192.168.2.22:2122/api/node/receive_push?token=2b8e49e5c15b3269cf8ba73ca8e076a2f9e2856d\&workspaceId=DEFAULT\' && tail -f ./logs/agent.log
执行后在面板中,执行结果,中点一下看到节点的连接才能看到节点
(2)
也可以在面板中,由系统管理,点一下,切为功能管理-资产管理-机器管理,来手动添加节点
配置AgentSSH信息
由系统管理,点一下,切为功能管理-资产管理-SSH管理,添加刚才节点的SSH信息
然后点关联-关联工作空间ssh-配置-文件目录,从这里配置程序的发布目录
配置仓库
有多重配置方式,这里选择使用通过私人令牌导入仓库,(https://jpom.top/pages/practice/privateToken-import-repository/ )
这里本人在Gitee上创建了一个空的SpringBoot项目名字就叫springBootFast,只有一个Controller接口来验证是否发布成功
package com.example.springbootfast.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {@RequestMapping("/hello")public String getHello(){return "Hello";}
}
构建命令这里采用,可以定制Maven命令
mvn clean package -Dmaven.test.skip=true
产物目录,具体名称是POM中定制的
/target/springBootFast-0.0.1-SNAPSHOT.jar
发布操作选择SSH
发布后命令,这个是指在节点机器,发布程序后执行的脚本,以下脚本意思为,查询正在运行的Java程序终止,并再启动,等于一个重启操作
Tag="springBootFast"# 检查进程状态
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" != "" ]; thenecho "kill boot process"# kill "$pid"kill -9 "$pid"fi
else echo "boot is stopped"
fi
# 启动项目
nohup java -Dappliction=$Tag -jar /usr/local/jars/springBootFast-0.0.1-SNAPSHOT.jar > /dev/null 2>&1 &
其他配置-差异构建,防止重复构建,只有新增提交时才触发构建
一般因为第一次构建时,因为要下载Jar包,因此时间比较久,第二次构建时时间会很快。