Jpom Jpom
🔖首页
  • 一键安装教程
  • Docker 容器安装教程
  • 离线安装教程
  • v2.9.X迁移到v2.10.X指南
  • v2.8.X迁移到v2.9.X指南
  • 数据库迁移到 mysql
  • 实践案例目录
  • 名词解释
  • 什么是 DSL
  • 权限说明
💡DSL说明
  • 加入社区讨论
  • 如何贡献
  • 贡献者们
🤝用户
  • 下载中心
  • Gitee (opens new window)
  • Github (opens new window)
🔖首页
  • 一键安装教程
  • Docker 容器安装教程
  • 离线安装教程
  • v2.9.X迁移到v2.10.X指南
  • v2.8.X迁移到v2.9.X指南
  • 数据库迁移到 mysql
  • 实践案例目录
  • 名词解释
  • 什么是 DSL
  • 权限说明
💡DSL说明
  • 加入社区讨论
  • 如何贡献
  • 贡献者们
🤝用户
  • 下载中心
  • Gitee (opens new window)
  • Github (opens new window)
❤️成为赞助商
  • 解决方案

    • 如何使用 Jpom 的在线构建为 Jpom 发版
    • 万能的 DSL 项目模板(Java)
    • 基于 Jpom 搭建应用部署系统
      • 0、部署示意图
      • 1、安装Jpom的Server、Agent
      • 2、代理服务器安装Nginx并代理Agent
      • 3、在Server初始化系统信息
        • 1、根据部署环境建立对应的工作空间
        • 2、在节点管理添加节点
        • 3、在节点下添加项目
        • 4、进入项目上传jar包
        • 5、点击“控制台”启动项目
      • 4、配置在线构建
        • 1、配置仓库地址
        • 2、填写构建规则
        • 3、进行构建
      • 5、配置脚本列表
        • 1、在SSH管理-命令管理添加脚本
        • 1、添加ssh信息
        • 2、编写服务上传脚本
        • 3、添加ssh key
        • 4、测试脚本是否能顺利执行
        • 2、在脚本管理-脚本列表添加脚本
      • 6、配置服务告警邮件监控
        • 1、管理员配置好邮件初始信息
        • 2、配置监控规则
        • 3、测试启停被监控的服务
    • 一键安装实践
    • Docker 容器安装实践
    • 离线安装实践
    • 自定义第三方通知
  • 在线构建

    • 本地构建 + SSH 发布 java 项目
    • 本地构建 + Jpom Server 使用 SCP 发布项目
    • 本地构建 + 项目发布 node 项目
    • 本地构建 + SSH 发布 node 项目
    • 本地构建 + 自定义管理 python 项目
    • 容器构建 + 项目发布 java 项目
    • Gitee 提交代码后自动执行构建
    • 使用 gradle 本地构建打包项目并发布到节点
    • GitLab 提交代码后自动执行构建
    • 通过私人令牌导入仓库
  • docker

    • 管理 docker
    • 在线构建 docker 镜像
    • 在线构建 docker 镜像并推送至远程仓库
    • docker 安装 redis 流程
  • 节点管理

    • 管理编译安装的 nginx
  • 项目管理

    • 自定义管理 java 项目
    • DSL项目接口探活
    • 在 Jpom 中如何使用 DSL 项目来管理 TOMCAT
    • 在 Jpom 中如何使用 DSL 项目来管理 elasticsearch
  • 项目监控

    • 监控项目 + 邮件报警通知
    • DSL 项目接口探活监控报警
  • 在线脚本

    • 使用节点脚本定时备份 docker 中的 mysql 数据库
  • SSH管理

    • 在线管理 SSH 终端以及上传文件(SFTP)和执行命令历史
  • 日常管理

    • 如何开启 h2-console web 访问功能
  • 实践案例
  • 解决方案
带刺的玫瑰
2022-06-11
目录

基于 Jpom 搭建应用部署系统

# 0、部署示意图

image-20220614224953194

# 1、安装Jpom的Server、Agent

Server部署在公司内网服务器,能访问外网;

Agent部署在需要管理的服务器节点,比如A服务器需要部署Java应用就安装Agent。

官网安装教程

这是安装完成后的Server端界面:

image-20220614231722150

# 2、代理服务器安装Nginx并代理Agent

Nginx需要安装在具有公网IP,和Agent所在的服务器在同一个网络环境的服务器

Nginx安装教程 (opens new window)

修改nginx.conf代理Agent

server {
        listen       83;
        server_name  localhost;
		#每个agent服务器定义一个唯一的代理规则
        location /16803/ {
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";

            proxy_pass http://ip:2123/;
        }
        location /168019/ {
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";

            proxy_pass http://ip:2123/;
        }
 }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 3、在Server初始化系统信息

# 1、根据部署环境建立对应的工作空间

image-20220614231941889

# 2、在节点管理添加节点

image-20220614232352909

  • 节点地址:填Nginx代理的agent的地址
  • 节点账号和密码安装Agent的时候有输出,查看路径:/agent安装目录/data/agent_authorize.json

# 3、在节点下添加项目

image-20220615215035447

# 4、进入项目上传jar包

image-20220615215228148

# 5、点击“控制台”启动项目

image-20220615215335584

至此已经完成了项目部署的基本功能,以后每次只需要重新上传jar包,再进行重启操作完成部署。

# 4、配置在线构建

# 1、配置仓库地址

image-20220615215819628

  • 仓库地址:填写需要构建的项目地址
  • 账号、密码:填写公司分配的SVN的账号密码

# 2、填写构建规则

image-20220615220200670

  • 构建命令:打包的mvn命令,不同的空间配特定的打包环境,通过-P参数指定;

  • 产物目录:匹配打包后的文件进行发布。这里的是相对路径,相对的是根目录是/yyyy/jpom-server/data/build/xxx/source

  • 发布操作:对于匹配的文件如何进行处理。

    • 不发布:仅仅打包,不进行其他操作,产物目录匹配到的文件会生成到

      /yyyy/jpom-server/data/build/xxx/history/#n/result

      xxx是一个随机字符串,每个构建规则会生成一个这样的特定字符串

      n是序号,每次打包都会递增1生成目录

    • 节点分发

    • 项目:如果项目打包后只有一个jar包就可以直接选择这种方式

    • SSH:将匹配到的文件发布指定的服务器的指定目录

    • 本地命令:自定义命令操作匹配到的文件。

      cp -rp ${BUILD_RESULT_FILE} /yyyy/deploy/test这个就可以把打包完成的文件拷贝到指定的目录。

      ${BUILD_RESULT_FILE}:jpom提供的环境变量,可以获取本次打包生成的匹配文件放入的目录

      即/yyyy/jpom-server/data/build/xxx/history/#n/result

    • Docker镜像

# 3、进行构建

image-20220615222812949

  • 分支:选择构建的分支

image-20220615222931149

此时可以叉掉弹框去做其他的事情,打包将在后台进行

image-20220615223136196

在构建历史列表也可以看到本次构建的进度以及历史的构建日志

# 5、配置脚本列表

可以针对每个服务写一个脚本用于将打好的jar包上传到指定的服务器的指定目录

image-20220615225311404

既可以在【SSH管理-命令管理】也可以在【脚本管理-脚本列表】添加要编写的脚本。

两者的区别是,前者编写的脚本可以在指定的服务器上执行,但要先添加SSH信息,后者直接就在部署Jpom Server的服务器上执行命令。

# 1、在SSH管理-命令管理添加脚本

# 1、添加ssh信息

image-20220615225707700

如果发现连接添加的SSH服务器信息经常超时连接不上,需要在上面的其他配置里面配置超时时间,这样能保证程序不会因为在指定时间内没连上导致超时。

# 2、编写服务上传脚本

image-20220615225925904

echo "准备上传文件..."
scp -C -P 应用服务器ssh端口号 -o 'ProxyJump 登录用户名@代理机器IP -p 代理机器ssh端口号' 构建生成jar的绝对路径 登录用户名@应用服务器ip:文件上传指定目录
echo "上传成功!"
1
2
3

这里演示的是通过代理服务器上传文件到应用服务器,因为很多情况下有些服务器是没有外网ip的,如果有的话就直接scp上传。

# 3、添加ssh key

因为scp命令拷贝时需要ssh秘钥认证,需要提前把ssh key的认证配置好。

如果是通过代理服务器上传文件到应用服务器,一共需要配置两处地方的ssh key认证

  1. 在构建服务器上生成的id_rsa.pub添加到代理服务器
  2. 在代理服务器上生成id_rsa.pub,将构建服务器和代理服务器的id_rsa.pub同时添加到应用服务器

ssh public key认证免密码登录 (opens new window)

# 4、测试脚本是否能顺利执行

image-20220616144132593

# 2、在脚本管理-脚本列表添加脚本

和上面的方式同理,只是不用选择SSH节点。

# 6、配置服务告警邮件监控

# 1、管理员配置好邮件初始信息

image-20220615231943904

# 2、配置监控规则

image-20220615232111198

联系人要配置了邮箱才能被选择

# 3、测试启停被监控的服务

image-20220615232431060

邮件报警记录

image-20220615232908740

帮助我们改善此文档 (opens new window)
#监控#SSH#在线构建
上次更新: 2023/03/27, 16:37:18
万能的 DSL 项目模板(Java)
一键安装实践

← 万能的 DSL 项目模板(Java) 一键安装实践→

最近更新
01
2023年
03-31
02
2022年
03-31
03
2021年
03-31
更多文章>
Theme by Vdoing | Copyright © 2017-2023 MIT License  京ICP备17044819号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×