引言
对于中小企业来说(我现在所在的企业),代码版本管理,服务在线构建部署是一个很头疼的事情,我目前所在公司,版本管理全手动(自己改了什么文件,记录下来,打包时整个文件拷贝),测试环境到生产环境的打包构建全靠人工复制,不仅效率低下,且容易出错,生产环境还需要重新测试,苦不堪言。
一天上班地铁上,关注的公众号推送一个中国的开源社区
dromara: https://dromara.org
社区孵化了一些自己的项目,其中介绍了Jpom,
Jpom: 简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件
一直在研究其文档,最近有时间付诸于行动,实际部署了一个简单的Vue项目,把大致流程搞明白了。
技术栈
1.Jpom,简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件。这是本文的主角。相对于Jenkins来说,个人理解Jpom更轻量,更适合中小企业的构建部署。这也是Jpom自己的定位。
2.docker,对于这篇博客,docker用来部署Nginx服务。
3.Nginx,Web服务器。
4.Vue,前端框架,前端整个服务基于Vue2框架,对于前端技术,需要学习的地方还很多。
环境
机缘巧合之下,薅羊毛搞了一个华为云主机,配置:
型号(规格)2 核 4 GB
云硬盘 系统盘: 40 GB 高IO
镜像信息 Ubuntu 20.04 server 64bit
带宽 1 Mbit/s 带宽
实践
Jpom文档
基于 Jpom 搭建应用部署系统 | Jpom
每一步都写的比较清楚,以下步骤中,我不会写的特别详细,主要的部分是说明遇到的坑。
1.安装Jpom
Jpom分为服务端Jpom-server与Jpom-agent插件端,服务端运行Jpom服务,负责服务的构建部署,插件端负责服务器节点的管理。
服务端插件端安装较简单,直接执行命令即可。
note
1.服务端插件端不能安装在同一目录,在安装的时候,插件端与服务端需要填写服务安装目录,如果是同一服务器,填写不同的安装目录
2.服务端需要以root用户运行,否则在服务发布的时候,会报权限错误。
服务端命令
apt install -y wget && \
wget -O install.sh https://jpom.top/docs/install.sh && \
bash install.sh Server jdk
插件端命令
# ubuntu
apt install -y wget && \
wget -O install.sh https://jpom.top/docs/install.sh && \
bash install.sh Agent jdk
安装完成后,服务器开放端口2122与2123,打开界面如下:
2.添加节点信息
添加agent服务所在节点信息进行管理,本博客服务器与插件在相同节点,节点地址直接填写127.0.0.1:2123即可。添加完成后如下:
点击管理界面,进入节点管理主界面。
点击系统管理,进行白名单设置,在后面项目部署的时候,构建完成的文件会复制到设置的白名单目录下(项目路径)。
3.添加仓库信息
本博客添加的码云的仓库,选择HTTPS协议。
添加完成后的界面
note
服务器server与git仓库连接需要添加SSH公钥,做一个绑定,否侧仓库添加不上。具体操作步骤
git ssh key配置_讨厌走开啦的博客-CSDN博客_git ssh
4.添加构建信息
如图所示,框1构建命令根据自己的项目实际填写,框2为步骤2设置的信息。
添加构建信息完成后,如下图所示
5.开始构建
构建中,遇到的问题主要为没有以root权限运行Jpom服务,出了错误,构建了很多次才成功。
第9次构建成功的日志
构建成功后产物目录
6.配置NGINX文件,暴露服务
NGINX以docker容器方式运行,所以,重要的是在启动NGINX容器时,文件的挂载。这里放上启动NGINX容器的命令。
docker run -d -p 80:80 -p 443:443 --name nginx --restart=always -e TZ="Asia/Shanghai" \
-v /home/server/frontend/haihe-oa-sys-frontend/:/usr/share/nginx/html:ro \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/log:/var/log/nginx nginx
其中,可以看到,把/home/server/frontend/haihe-oa-sys-frontend/直接映射到/usr/share/nginx/html。
7.打开浏览器,验证部署是否成功
写在最后
本篇博客算是对于Jpom有了基本的入门,后面还有很多细研究的地方,主要是日志管理与监控管理,随着应用深入,产物希望以博客的形式分享出来。
从知道Jpom项目的存在,到这篇博客的问世,中间经历了大半年的时间,买了一个云服务器,也闲置了三个月,现在是终于有点时间折腾了,自己还是挺满意的,只要坚持探索,储备的知识有一天终究会用上的。