前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >打造企业级自动化运维平台系列(八):Jenkis 部署前后端分离项目

打造企业级自动化运维平台系列(八):Jenkis 部署前后端分离项目

作者头像
民工哥
发布2024-01-18 15:42:55
4220
发布2024-01-18 15:42:55
举报
文章被收录于专栏:民工哥技术之路

环境准备

安装JDK

安装的版本是JDK11,直接使用yum一键安装。

代码语言:javascript
复制
yum install java-11-openjdk-devel
安装Git

直接执行如下命令一键安装

代码语言:javascript
复制
yum install git
  • 配置Maven环境
  • 配置Node.js环境
  • 部署Nginx
  • 部署Tomcat
  • Jenkins安装

如果有不会安装部署以上服务的,请参考公众号往期文章,这里不再赘述了。更多关于构建企业自动化运维平台系列的学习文章,请参阅:企业级自动化运维平台,本系列持续更新中。

配置Jenkins

在部署Vue和SpringBoot项目之前务必配置一下Jenkins。

安装Maven插件

1、点击左边的Manage Jenkins

2、点击Plugins

3、搜索Maven并安装,记得勾选

4、静静等待安装完毕,然后点击返回首页

安装Node.js插件

1、重复之前的步骤,这次搜索NodeJs进行安装,记得勾选。

2、勾选并重启Jenkins完成之前Maven和本次Node.js的安装。

3、重启以后输入账号和密码重新登录进来,选择左边的系统管理,接下来进行全局工具配置。

配置JDK

我们需要找到yum安装的JDK源目录,按顺序执行如下命令:

1、查java位置

代码语言:javascript
复制
which java

2、查软连

代码语言:javascript
复制
ls -l /usr/bin/java

3、查JDK源目录

代码语言:javascript
复制
ls -l /etc/alternatives/java

找到的源目录如下

代码语言:javascript
复制
/usr/lib/jvm/java-11-openjdk-11.0.19.0.7-1.el7_9.x86_64

4、点击新增JDK并取消自动安装,最后将源目录粘贴到Jenkins配置中

这样JDK就配置完成了!

配置Maven

1、输入如下命令找到我们Maven仓库

代码语言:javascript
复制
mvn -v

找到的源目录如下

代码语言:javascript
复制
/maven/apache-maven-3.8.8

2、点击新增Maven并取消自动安装,最后将源目录粘贴到Jenkins配置中.

这样Maven就配置完成了!

配置Node.js

1、找到安装Node.js的源目录

源目录如下:

代码语言:javascript
复制
/nodejs/node-v15.0.0-linux-x64

2、点击新增NodeJs并取消自动安装,最后将源目录粘贴到Jenkins配置中

这样Node.js也配置完成了! 以上三个都配置完成以后,翻到最下面点击保存!

部署SpringBoot项目

1、新建SpringBoot项目打包的Jar包的存放地址,这边我的绝对路径是

代码语言:javascript
复制
/project/springboot

2、回到首页,点击新建任务

3、输入项目名称,选择构建一个maven项目,最后点击确定

4、选择源码管理,输入git仓库地址,如果你这个仓库是私有的,需要手动添加一下凭据,就是你git的账号和密码,因为我这个项目是开源的,所以不需要进行添加,分支默认选择主分支

5、选择在Build,在Goals and options中添加如下命令

代码语言:javascript
复制
clean install -Dmaven.test.skip=true

命令详解

代码语言:javascript
复制
clean
#清理项目,会删除目标目录target里面的文件

install
#安装项目到本地仓库,会先执行compile,test等目标,然后把打包的jar上传到本地仓库

-Dmaven.test.skip=true
#该参数表示跳过测试代码的编译和执行

6、选择Post Steps,选择执行shell

添加如下命令

代码语言:javascript
复制
mv /root/.jenkins/workspace/springboot-jenkins/target/springboot-docker-0.0.1-SNAPSHOT.jar /project/springboot/springboot-docker-0.0.1-SNAPSHOT.jar
cd /project/springboot/
BUILD_ID=dontKillMe nohup java -Xms512m -Xmx512m -jar springboot-docker-0.0.1-SNAPSHOT.jar &

注:

  • 1、/root/.jenkins/workspace/springboot-jenkins中的springboot-jenkins是这次构建的项目名
  • 2、需要自己先提前新建好/project/springboot目录
  • 3、springboot-docker-0.0.1-SNAPSHOT.jar是maven打包后默认的文件名,不知道的先提前打包看一下包名,防止写错

命令详解

代码语言:javascript
复制
mv /root/.jenkins/workspace/springboot-jenkins/target/springboot-docker-0.0.1-SNAPSHOT.jar /project/springboot/springboot-docker-0.0.1-SNAPSHOT.jar
#这行将Jenkins工作空间里构建好的Spring Boot项目的jar文件,移动到/project/springboot目录下,以便运行。

cd /project/springboot/
#切换目录到上一步移动jar包的目录。

BUILD_ID=dontKillMe nohup java -Xms512m -Xmx512m -jar springboot-docker-0.0.1-SNAPSHOT.jar &
#BUILD_ID=dontKillMe 是为了阻止Jenkins在任务完成后杀掉启动的进程,使用nohup在后台运行该jar文件,启动Spring Boot应用。

7、点击保存

8、点击立即构建,接着左下角就会有个加载动画

9、点进去以后,点击控制台输出

10、第一次部署会比较慢,因为我的Maven仓库是空的,所以因为大部分的时间都是Maven在从阿里云镜像下载Jar包,多多等待一会

这样就部署成功了!注:放行9090端口号。

10、使用postman测试接口

OK,大功告成!

部署Vue项目

1、新建Vue项目的存放地址,这边我的绝对路径是

代码语言:javascript
复制
/project/vue/dist 

这个是我配置好Nginx服务器读取的网站目录.

2、配置好nginx.conf文件,只要有3个地方,分别是:端口号、读取路径和反向代理.

代码语言:javascript
复制
location /api/ {     proxy_pass http://ip:端口/; }

如图所示

不知道怎么配置的可以看部署Nginx相关的文章。注:安全组需要放行88端口号。

3、启动我们的Nginx然后进行访问。

因为我们的dist文件夹什么都没有,所以403很正常 。

4、重复之前的步骤,输入项目名,选择自由风格的软件项目,最后点击确定 。

5、点击源码管理,粘贴你的项目地址并指定分支,我这边提供的是开源的Demo,所以不需要添加凭据。

6、点击Build Steps,选择执行shell 。

7、执行如下命令

代码语言:javascript
复制
npm install
rm -rf ./dist/*
npm run build
rm -rf /project/vue/dist/*
cp -rf ./dist/* /project/vue/dist
chmod -R 777 /project/vue/dist

命令详解:

代码语言:javascript
复制
npm install
#运行npm install安装所需的node模块依赖

rm -rf ./dist/*
#清空本地dist目录,删除之前的构建结果

npm run build
#运行npm run build命令进行项目打包构建,生成最新的dist文件夹

rm -rf /project/vue/dist/*
#删除服务器部署目录下的旧的dist,做部署前的清理工作

cp -rf ./dist/* /project/vue/dist
#将最新构建的本地dist目录拷贝到服务器部署目录下,完成部署

chmod -R 777 /project/vue/dist
#修改部署目录的权限为777,确保jenkins用户有足够权限写入部署目录

8、点击保存

9、点击立即构建,接着左下角就会有个加载动画

10、点进去以后,点击控制台输出

11、看到success就是部署成功了!

12、再次访问我们刚才部署好的Nginx网站(不需要重启Nginx,热部署的)

到这一步,我们的前后端项目就算都部署完成啦!

以上就是我使用Jenkins部署自己的前后端分离的一些技术分享,如有问题欢迎评论区提出!

参考链接:https://blog.csdn.net/HJW_233/ article/details/131816735

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-01-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 民工哥技术之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境准备
    • 安装JDK
      • 安装Git
      • 配置Jenkins
        • 安装Maven插件
          • 安装Node.js插件
            • 配置JDK
              • 配置Maven
                • 配置Node.js
                • 部署SpringBoot项目
                • 部署Vue项目
                相关产品与服务
                容器服务
                腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档