【服务器部署篇】Jenkins配置后端工程自动化部署

作者介绍:本人笔名姑苏老陈,从事JAVA开发工作十多年了,带过刚毕业的实习生,也带过技术团队。最近有个朋友的表弟,马上要大学毕业了,想从事JAVA开发工作,但不知道从何处入手。于是,产生了写一个博客专栏想法,介绍当前互联网企业JAVA项目开发如何快速入门。

本文收录于《30天企业JAVA项目开发实战入门》专栏,该专栏内容以当前互联网软件企业中的项目实战为线索,介绍企业JAVA项目开发中涉及到的开发流程、技术、工具、规范要求等等。帮助想从事JAVA开发的大学生或新人,更快的、更好的入门JAVA后端开发工作。

一、前言

本文介绍如何通过Jenkins配置后端工程进行自动化部署。这里以若依Spring-cloud后端工程为示例,介绍如何通过Jenkins配置若依Spring-cloud后端工程,实现自动化发布部署到服务器上。

在这里插入图片描述

首先,梳理一下,我们要实现的自动化发布部署的流程如下:

1)首先,使用git从远程代码仓库中拉取最新的代码;

2)之后,使用jdk、maven对代码进行编译打包;

3)之后,根据定义的dockfile文件,生成对应的docker镜像;

4)之后,把docker镜像推送到harbor远程镜像仓库中;

5)之后,从harbor远程镜像仓库中拉取docker镜像;

6)最后,使用对应的docker镜像,启动docker容器。至此,自动化发布部署完成。

二、准备资源

1)环境要求

CentOS7.9 64位、JDK1.8、Tomcat8.5.87、maven3.3.1、Git1.8、Jenkins2.260

2)服务器资源购买

阿里云ECS服务器172.22.187.36(安装Jenkins等第三方应用)、阿里云ECS服务器172.22.187.40(部署Spring-cloud项目)、阿里云RDS Mysql服务器(部署项目数据库)

3)服务器上应用安装清单

Redis服务器,安装参考见本专栏链接:https://blog.csdn.net/u012171005/article/details/137829140

Nacos服务器,安装参考见本专栏链接:https://blog.csdn.net/u012171005/article/details/137886006

Jenkins发布工具,安装参考见本专栏链接:https://blog.csdn.net/u012171005/article/details/138182743

Docker容器工具,安装参考见本专栏链接:https://blog.csdn.net/u012171005/article/details/137435897

Ansible部署工具,安装参考见本专栏链接:https://blog.csdn.net/u012171005/article/details/138136832

4)其他资源

代码仓库使用码云gitee,RuoYi-Cloud代码下载地址:https://gitee.com/y_project/RuoYi-Cloud

镜像仓库使用阿里云仓库,阿里云仓库地址:https://cr.console.aliyun.com/cn-shanghai/instances

三、配置项目的阿里云镜像仓库

首先,登录阿里云控制台,创建一个自己的镜像仓库实例;
在这里插入图片描述

之后,新增一个项目对应的命令空间;
在这里插入图片描述

之后,为项目中不同的微服务,创建对应的镜像仓库;
在这里插入图片描述

最后,当我们把镜像推送到仓库中后,可以在“镜像版本”列表中,查看到对应的推送记录;

在这里插入图片描述

四、编写项目dockerfile和docker-compose文件

dockerfile文件定义如下:(以ruoyi-system后端服务为示例)

# 基础镜像
FROM  openjdk:1.8

# author
MAINTAINER ruoyi

# 挂载目录
VOLUME /home/ruoyiv

# 创建目录
RUN mkdir -p /home/ruoyi

# 指定路径
WORKDIR /home/ruoyi

# 复制jar文件到路径
COPY ./ruoyi-modules-system.jar /home/ruoyi/ruoyi-modules-system.jar

# 启动系统服务
ENTRYPOINT java ${JAVA_OPTS}  -jar ruoyi-modules-system.jar

docker-compose文件定义如下:(以ruoyi-system后端服务为示例)

version: "2"
services:

   ruoyi-system:
      restart: always
      image: registry-vpc.cn-shanghai.aliyuncs.com/ruoyi_project/ruoyi-system
      ports:
      - "9201:9201"
      container_name: ruoyi-system
      mem_limit: 1.5g
      environment:
      - JAVA_OPTS=-Xmx1g -Xms1g
      - SPRING_PROFILES_ACTIVE=dev

五、编写项目发布shell脚本

docker镜像创建、推送、启动相关的Shell脚本定义如下:(以ruoyi-system后端服务为示例)

####步骤一、开始服务器A操作

#cd到项目jar包所在目录下
cd  /root/.jenkins/workspace/ruoyi-system/ruoyi-modules/ruoyi-system/target

#创建docker镜像
docker  build  -t  registry-vpc.cn-shanghai.aliyuncs.com/ruoyi_project/ruoyi-system:latest -f  /root/.jenkins/workspace/ruoyi-system/ruoyi-modules/ruoyi-system/src/main/resources/dockerfile .

#登录docker镜像仓库,PS:可以先手执行镜像仓库的登陆命令,后续就不需要重复登录了
docker login --username=你的镜像仓库登陆账号名  registry-vpc.cn-shanghai.aliyuncs.com

#给docker镜像打tag
docker tag registry-vpc.cn-shanghai.aliyuncs.com/ruoyi_project/ruoyi-system   registry-vpc.cn-shanghai.aliyuncs.com/ruoyi_project/ruoyi-system:latest

#推送docker镜像到仓库中
docker push registry-vpc.cn-shanghai.aliyuncs.com/ruoyi_project/ruoyi-system:latest

####步骤二、通过ansible工具,开始服务器B操作

#拉取docker镜像
ansible 172.22.187.40  -m command  -a  'docker pull registry-vpc.cn-shanghai.aliyuncs.com/ruoyi_project/ruoyi-system:latest'

#使用镜像启动docker容器
ansible 172.22.187.40  -m command  -a  'docker-compose -f  /opt/ruoyi/docker-compose.yml up -d ruoyi-system'

六、配置项目的Jenkins任务

下面开始新建和配置Jenkins任务。(以ruoyi-system后端服务为示例)

首先,新增一个Maven任务;
在这里插入图片描述
之后,输入任务名称,选择任务类型为Maven,点击确定;
在这里插入图片描述

之后,填写任务描述;
在这里插入图片描述

之后,配置丢弃旧的构建参数;
在这里插入图片描述
之后,配置源码管理中git参数;
在这里插入图片描述
之后,配置Maven编译参数;

在这里插入图片描述

之后,配置要执行的shell脚本;
在这里插入图片描述

最后,点击应用保存按钮,完成任务创建。

七、执行项目的Jenkins任务,实现自动化部署

Jenkins任务创建完成后,下面可以使用Jenkins的自动构建功能,执行自动化发布任务。

选择要发布的任务,点击立即构建。

在这里插入图片描述

之后,查看控制台输出信息;
在这里插入图片描述

最后,如果控制台输出Success字样,说明自动构建成功,发布任务完成了。
在这里插入图片描述

八、总结

以上介绍了如何通过Jenkins配置后端工程进行自动化部署。关于Jenkins自动化部署,在实际的项目中,一般会涉及到多个节点服务器、服务高可用等等情况,需要对shell脚本进一步做优化处理。

  • 35
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
后端分离的分布式项目部署通常包括以下几个步骤: 1. 前端部署: - 打包前端代码:将前端代码使用构建工具(如Webpack)进行打包,生成静态文件(HTML、CSS、JavaScript)。 - 部署静态文件:将打包好的静态文件上传至一个静态文件服务器(如Nginx),通过域名或IP地址访问。 2. 后端部署: - 选择合适的云平台:根据项目需求选择合适的云服务提供商(如AWS、阿里云、腾讯云)。 - 虚拟机或容器化部署:创建虚拟机实例或使用容器技术(如Docker)创建容器,并在其中部署后端代码。可以使用自动化部署工具(如Ansible、Kubernetes)来简化部署流程。 - 数据库部署:根据项目需要选择适合的数据库类型(如MySQL、MongoDB),在数据库服务器上创建并配置数据库实例。 3. 网络配置: - 前后端通信:配置前端与后端的网络通信,确保前端能够正确地发送请求到后端接口。 - 负载均衡:使用负载均衡技术(如Nginx、HAProxy)来分发请求,提高系统的并发处理能力和可用性。 - 安全配置配置SSL证书以启用HTTPS协议,保证数据传输的安全性。 4. 监控和日志: - 监控系统:搭建监控系统,监控项目的运行状态、性能指标等,及时发现并解决问题。 - 日志管理:配置日志记录,将项目的日志信息输出到集中式日志管理平台,方便排查问题和分析。 5. 自动化部署和持续集成: - 使用自动化部署工具(如Jenkins、GitLab CI/CD)实现自动化部署流程,减少手动操作的错误和时间成本。 - 实施持续集成和持续交付策略,通过自动化测试、代码检查等手段确保代码质量,并快速将新功能交付给用户。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姑苏老陈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值