基于 Jpom 搭建应用部署系统

蒋小小 蒋小小 | 510 | 2022-07-27

0、部署示意图

image-20220614224953194

1、安装Jpom的Server、Agent

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

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

官网安装教程

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

image-20220614231722150

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

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

Nginx安装教程

修改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/;
        }
 }

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 "上传成功!"

这里演示的是通过代理服务器上传文件到应用服务器,因为很多情况下有些服务器是没有外网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认证免密码登录

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

image-20220616144132593

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

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

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

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

image-20220615231943904

2、配置监控规则

image-20220615232111198

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

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

image-20220615232431060

邮件报警记录

image-20220615232908740

Jpom 实践案例

更多实践案例>>

Jpom 链接

官网:https://jpom-docs.keepbx.cn/

Gitee: https://gitee.com/dromara/Jpom

Github: https://github.com/dromara/Jpom

常见问题:https://jpom-docs.keepbx.cn/pages/FQA/

致谢

本教程由 带刺的玫瑰 分享

文章标签: CI/CD
推荐指数:

转载声明:

原作者: 带刺的玫瑰

转载自: 《基于 Jpom 搭建应用部署系统》,如有侵权,请联系本站删除。

真诚点赞 诚不我欺~

基于 Jpom 搭建应用部署系统

点赞 收藏 评论