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 安装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 &
这个时候打开浏览器访问地址:http://ip:8080,即可访问到jenkins。第一次登录需要输入管理员密码,然后创建用户,装插件,创建实例等。这里我是对着视频配置的。jenkins安装配置
一系列都正好之后,就来到了这个页面,第一次进来什么都没有,我这个是已经配置完的。
这里有个小问题忘说了,就是部署时候可能会提示说不建议root用户进行部署,涉及权限问题什么的。然后说给jenkins用户加权限操作等,我没管他,
直接全部上到了root里面。
- 开始部署
首先为父工程创建了任务。默认是没有maven项目的,想直接创建maven的可以先行安排上插件,不过创建自由风格的也行,自己写命令就完了。
进来之后把仓库地址配置上
因为整了maven,这里也方便了一点,直接
clean package -Dmaven.test.skip=true
然后经过漫长的等待下载依赖打包即可。可以通过查看控制台输出有无报错问题并更改。
我这里已经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" ]
thenecho "kill -9 的pid:" $pidkill -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 &
其他模块类似,以此类推,将所有模块都新建任务并构建。通过log文件查看
最后部署前台项目
#!/bin/bash
pwd
lsnode -v
npm -v
git --version
java -versionecho '构建的版本号:'${BUILD_NUMBER}
npm install
npm run build
pwdecho '----- 以上的列出的文件是 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 "构建完成"
在服务都已经起起来的时候,访问http://ip/项目名就可以访问到了。
接下里就可以愉快的访问自己部署在服务器上的项目了。
- 写在最后
本人小白,即将毕业,第一次将项目部署到服务器,发此文仅作记录。如有纰漏或不周,望各位批评指正。
快过年了,我们安阳疫情也紧张,已经连续4天天天做核酸了,提前祝大家新年快乐,愿所有人都能平平安安的回到家,和家人团聚,来年一帆风顺,码的都对,没有bug,工资涨涨涨。
jenkins部署微服务项目相关推荐
- k8s部署微服务项目
之前用docker-compose部署微服务项目,但是只能单节点的(那你用微服务架构干啥?),所以想搞一下k8s集群,网上找了下资料没有视频专门讲这一块,自己找了很多资料,搞了蛮长时间的,所以记录一下 ...
- IDEA集成Docker插件实现一键自动打包部署微服务项目
一. 前言 大家在自己玩微服务项目的时候,动辄十几个服务,每次修改逐一部署繁琐不说也会浪费越来越多时间,所以本篇整理通过一次性配置实现一键部署微服务,实现真正所谓的一劳永逸. 二. 配置服务器 1. ...
- docker部署微服务项目
上次有人说部署单个springboot项目和ssm写的非常的简单可以写一篇docker部署微服务的结构的文章的吗 安排 什么是微服务? 微服务架构是一种将单个应用程序作为一套小型服务开发的方法,每种应 ...
- Docker 部署微服务项目
目录 一.前言 二.环境准备 1.安装 Docker 2.Docker 安装 MySQL 3.Docker 安装 Redis 4.Docker 安装 Nacos 5.Docker 安装 Nginx 三 ...
- Java学习 --- docker部署微服务项目
目录 一.创建一个springboot项目 1.1.修改pom.xml文件 1.2.修改application.properties配置文件 1.3.创建controller层和类 1. ...
- linux系统部署微服务项目
1.安装Centos7 1.1 官网下载centos7镜像.centos7官网下载地址 1.2 虚拟机安装镜像.(百度,不再赘述) 2.linux系统安装jdk 2.1 下载jdk 链接:https: ...
- docker+docker-compose部署微服务项目
1.安装docker 1.1.配置官方源: sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/ ...
- K8s部署微服务(springboot+vue)
文章目录 前言 一.使用到的K8s资源 1.1 Deployment 1.2 Service 二.Springboot基础服务部署 2.1 网关gateway 2.2 鉴权auth 2.3 文件fil ...
- k8s+jenkins+docker部署微服务实现CI/CD
"所爱隔山海,山海不可平,海有舟可渡,山有路可行,此爱翻山海,山海皆可平." 作为一个想搞开发的,最近似乎都在干运维,不知道有没有跑偏... 2021.5.14 一般的中小公司个人 ...
最新文章
- w10系统老是自动息屏_大师解答win10系统无法自动关屏/待机和睡眠的恢复教程
- Maven 加载ojdbc14.jar报错,解决方法
- java实现多文件上传至本地服务器
- JavaScript面向对象编程理解
- KMP算法 --- 深入理解next数组
- 用AdobePageMaker制作PDF文档
- axure 8.1 破解 和 汉化
- U-Net模型搭建python实现
- html计时加速,HTML-加速、再加速
- t检验(t test)
- Pdf怎么设置页码,从正文开始
- Simple Usage of Sort in Golang
- 移动、电信光猫超级管理员密码
- 技术人员谈管理之帕累托法则(80/20法则)
- java获得当月法定工作日_java获取当月的工作日
- PHPWord的使用
- 安卓:No static method decodeBase64,commen-code包里报错的信息
- 51信用卡前端笔试题
- dB,dBi, dBd, dBc,dBm,dBw释义及区别
- java purge_springboot之全局处理统一返回
热门文章
- wxtemple.class.php,ThinkPHP3.2.3实现推送微信模板消息
- noip2002 字串变换 (双向宽搜,交替扩展)
- 【项目部署】使用Jenkins一键打包部署前端Vue应用
- 50个Java多线程面试题
- 生成器进阶--yield from
- 操作系统实验六 设备管理
- 挑战杯一次出乎意料的比赛
- 给人脸戴上口罩,Python实战项目来了
- 《DKN: Deep Knowledge-Aware Network for News Recommendation》知识图谱与推荐系统结合之DKN
- Flink stream load 方式写入doris