当前位置:   article > 正文

jenkins部署微服务项目

jenkins部署微服务

新手上路,对着视频做了一个谷粒的在线教育项目。测试跑通之后,想要自己试着部署到自己的云服务器上,闲着也是闲着不是。言归正传

  • 简介
    在微服务架构中,随着服务越来越多,服务的打包部署就会成为一个相当麻烦的事情。比如说我的edu-online项目目前就有10个服务需要部署,有没有什么办法让我们部署一次之后,只要点击执行就可以自动部署呢?当然有!下面我们使用Jenkins来完成一个微服务架构中的自动化部署工作。

  • Jenkins的基本使用
    关于Jenkins的基本使用可以参考使用Jenkins一键打包部署SpringBoot应用

  • 前期准备
    将自己本地的项目上传到远程仓库,在idea里面装上git的插件,并配置好git,git的配置可以参考Git 安装配置全流程,这里我是上传到了gitee。
    将项目的前台也上传到gitee上

git pull origin master --allow-unrelated-histories
git add .
git commit -m '提交说明'
git push origin master 
  • 1
  • 2
  • 3
  • 4
  • 服务器环境准备
    1 安装JDK
    本文采用jdk-8u181-linux-x64.tar.gz;
    2 安装maven
    本文采用apache-maven-3.6.1-bin.tar.gz
    3 安装nacos
    本文项目用到了服务注册,不想远程连接了,直接全在服务器上吧。采用nacos-server-1.4.2.tar.gz
    4 安装mysql
    同上,类似服务器不偿命,反正快到期了。采用的是mysql-5.7.36-linux-glibc2.12-x86_64.tar
    5 安装node
    部署完事后端代码,顺道把前台页面也安排上了。采用了node-v10.14.2-linux-x64.tar.gz
    6 安装redis
    本文使用的是redis-5.0.5.tar.gz。当我装了这么多东西,然后后台运行,整好开机启动,才发现好他喵的卡,cpu占用嘎嘎的高,以至于后来点jenkins部署的时候,一等就是大半天。
    7 安装httpd
    有些linux版本中已经预置了有Apache,并且已经是服务了,所有首先检查系统中是否已经存在httpd的服务。我的服务器上不知咋的反正没有,那就装一下把。具体可参考Linux中Apache(httpd)安装、配置、加为服务
  • Jenkins的安装及配置
    在这里我直接懒省事了,下载了war包直接运行的。war包下载地址:下载war包,完事之后跑起来。启动war包命令
nohup java -jar jenkins.war &
  • 1

这个时候打开浏览器访问地址:http://ip:8080,即可访问到jenkins。第一次登录需要输入管理员密码,然后创建用户,装插件,创建实例等。这里我是对着视频配置的。jenkins安装配置
一系列都正好之后,就来到了这个页面,第一次进来什么都没有,我这个是已经配置完的。
在这里插入图片描述
这里有个小问题忘说了,就是部署时候可能会提示说不建议root用户进行部署,涉及权限问题什么的。然后说给jenkins用户加权限操作等,我没管他,
直接全部上到了root里面。

  • 开始部署
    首先为父工程创建了任务。默认是没有maven项目的,想直接创建maven的可以先行安排上插件,不过创建自由风格的也行,自己写命令就完了。
    进来之后把仓库地址配置上
    在这里插入图片描述
    因为整了maven,这里也方便了一点,直接
    在这里插入图片描述
clean package -Dmaven.test.skip=true
  • 1

然后经过漫长的等待下载依赖打包即可。可以通过查看控制台输出有无报错问题并更改。
在这里插入图片描述在这里插入图片描述
我这里已经SUCCESS了。
接下来把模块都安排上,这里使用的最简单的办法,没有使用视频中的docker部署。

BUILD_ID=DONTKILLME
#!/bin/bash
#获取你想运行jar包的进程号
pid=`ps -ef | grep api_gateway-1.0-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
#如果存在则把该进程杀掉
if [ -n "$pid" ]
then
   echo "kill -9 的pid:" $pid
   kill -9 $pid
fi
echo "复制jar包"
#把jenkins打的jar包复制到自己指定的目录下
cp  /root/.jenkins/workspace/edu_parent/infrastructure/api_gateway/target/api_gateway-1.0-SNAPSHOT.jar /usr/mydemo
echo "启动jar包"
#最后启动jar包并把日志输出到指定的文件中以便查看
nohup java -jar /usr/mydemo/api_gateway-1.0-SNAPSHOT.jar > /usr/mydemo/api_gateway.log 2>&1 & 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

其他模块类似,以此类推,将所有模块都新建任务并构建。通过log文件查看
在这里插入图片描述
最后部署前台项目

#!/bin/bash
pwd
ls

node -v
npm -v
git --version
java -version

echo '构建的版本号:'${BUILD_NUMBER}
npm install
npm run build
pwd

echo '----- 以上的列出的文件是 jenkin 服务 workspace 中 vue-admin-template-master 目录下的文件-------'

echo "复制dist文件夹"
#把dist文件夹复制到httpd服务器指定的目录下
cd /var/www/html/
#mkdir vue-admin-template-master
cp -r /root/.jenkins/workspace/vue-admin-template-master/dist/* /var/www/html/vue-admin-template-master/
echo "构建完成"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

在服务都已经起起来的时候,访问http://ip/项目名就可以访问到了。
在这里插入图片描述
接下里就可以愉快的访问自己部署在服务器上的项目了。

  • 写在最后
    本人小白,即将毕业,第一次将项目部署到服务器,发此文仅作记录。如有纰漏或不周,望各位批评指正。
    快过年了,我们安阳疫情也紧张,已经连续4天天天做核酸了,提前祝大家新年快乐,愿所有人都能平平安安的回到家,和家人团聚,来年一帆风顺,码的都对,没有bug,工资涨涨涨。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/449805
推荐阅读
相关标签
  

闽ICP备14008679号