Linux上GitLab+Jenkins实现Vue、Spring Cloud项目的自动部署

一、 相关插件安装

1.安装GitLab相关插件

2.NodeJS插件

3.Maven 插件

4.手动安装插件

网络或者其他原因,可能导致插件安装失败。

可以采用手动安装的方式。

  • 手动下载jenkins插件:jenkins插件下载地址:http://mirror.xmission.com/jenkins/plugins/ ,一般下载下来后缀为hpi,如下载下来是zip的,记得把后缀修改为hpi
  • 打开jenkins,点击 系统管理——>插件管理——>高级,选择本地文件,点击提交。

二、Jenkins相关配置

1.全局工具配置

系统管理-->全局工具配置:

将服务器安装的Git、Maven以及Node 起一个名字进行配置。(也可用Jenkins带的“自动安装”,不过网络差的话可能很慢)。

2.系统配置,设置 GitLab

系统管理-->系统设置,找到GitLab,填写上名称与GitLab并写上主机地址,点击【添加】来添加证书。

这里我们选择添加 GitLab API token

登陆GitLab

点击右上角头像-->设置-->访问令牌

输入令牌名称,然后勾选api,点击下方 创建个人访问令牌,复制token,并保存下来。因为下次就不可见了。然后在Jenkins中粘贴

三、创建vue前端任务

1.创建任务

输入任务名称,点选“构建一个自由风格的软件项目”,点击确定。

2.general

这里描述就随便写写,丢弃旧的构建可以选上,节省空间。

3.源码管理

选择"Git",将项目git连接复制,并点击【添加】添加git用户名/密码;

输入指定分支。

4.构建触发器

这里我们点选,当GitLab提交触发,点击下面的【高级】

拉到下面创建一个token

创建完成后,进入GitLab上的前端项目,点击【设置】-->【集成】

将 上面Build when a change is pushed to GitLab. GitLab webhook URL: 后面跟的项目链接 与 刚刚 生成的token输入,点击【Add webhook】

添加成功后,可以点选测试,Push events 如果弹出 200 说明测试通过。

5.构建环境

构建环境选择node,然后NodeJS Installation 这里下拉选择上面在全局系统配置中设置的node

6.构建

构建这里,我们选择shell脚本。

npm -v
cnpm install                        // 下载 node moudles
node build/build.js                 //构建
tar -zcvf dist.tar.gz ./dist        //将生成的dist 打成压缩包

mv ./dist.tar.gz /var/www/vue;      //移动到Nginx配置的项目目录下面

cd /var/www/vue;
rm -fr ./static
tar -zxvf ./dist.tar.gz ./;         //解压 刚才打的dist压缩包
mv ./dist/* ./                      //删除
rm -fr ./dist
rm -fr ./dist.tar.gz;

然后点击保存,就可以了。

四、创建Sping Cloud 任务

创建Spring Cloud 跟创建 Vue前端任务类似,只是构建环境可以不选,然后更改构建中的shell。

首先为每一个服务创建一个通用的脚本,模板如下:

#spring boot Jar包目录
APP_NAME=/root/app/springBoot/robotcenter.jar
#使用说明,用来提示输入参数
usage() {
    echo "Usage: sh robotcenter.sh [start|stop|restart|status]"
    exit 1
}

#检查程序是否在运行
is_exist(){
  pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'`
  #如果不存在返回1,存在返回0
  if [ -z "${pid}" ]; then
   return 1
  else
    return 0
  fi
}

#启动方法
start(){
  is_exist
  if [ $? -eq 0 ]; then
    echo "${APP_NAME} is already running. pid=${pid}"
  else
    #这个dontKillMe 是一定要加的,不然jenkins会杀死这个进程,导致服务退出
    BUILD_ID=dontKillMe
    #将日志输出到robotcenter.out,自己命名
    nohup java -jar ${APP_NAME}  >robotcenter.out 2>&1 &
  fi
}

#停止方法
stop(){
  is_exist
  if [ $? -eq "0" ]; then
    kill -9 $pid
  else
    echo "${APP_NAME} is not running"
  fi
}

#输出运行状态
status(){
  is_exist
  if [ $? -eq "0" ]; then
    echo "${APP_NAME} is running. Pid is ${pid}"
  else
    echo "${APP_NAME} is NOT running."
  fi
}

#重启
restart(){
  stop
  sleep 5
  start
}

#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
  "start")
    start
    ;;
  "stop")
    stop
    ;;
  "status")
    status
    ;;
  "restart")
    restart
    ;;
  *)
    usage
    ;;
esac

然后编写构建shell脚本

#首先关闭所有的服务
sh /home/shell/eureka.sh stop
sh /home/shell/zuul.sh stop
sh /home/shell/web.sh stop
#进入jenkins的工作空间 对应的Spring Cloud项目地址
cd /var/lib/jenkins/workspace/Project/
# clean install 清除之前的包,并将所有模块 打包
mvn clean
mvn install
# 进入每个需要部署服务的target目录,将jar包移动到指定目录
cd /var/lib/jenkins/workspace/Project/Project-server-eureka/
cd target/
mv Project-server-eureka-0.0.1-SNAPSHOT.jar /home/Project/
cd /var/lib/jenkins/workspace/Project/Project-server-zuul/
cd target/
mv Project-server-zuul-0.0.1-SNAPSHOT.jar /home/Project/
cd /var/lib/jenkins/workspace/Project/Project-server-web/
cd target/
mv Project-server-web-0.0.1-SNAPSHOT.jar /home/Project/
#启动每个服务的启动脚本
sh /home/shell/eureka.sh start
sh /home/shell/zuul.sh start
sh /home/shell/web.sh start

原文地址:https://www.cnblogs.com/nm666/p/12444066.html

时间: 2024-10-08 06:25:15

Linux上GitLab+Jenkins实现Vue、Spring Cloud项目的自动部署的相关文章

Vue + Spring Boot 项目实战(一):项目简介 򗊪

原文: http://blog.gqylpy.com/gqy/489 置顶:来自一名75后老程序员的武林秘籍--必读(博主推荐) 来,先呈上武林秘籍链接:http://blog.gqylpy.com/gqy/401/ 你好,我是一名极客!一个 75 后的老工程师! 我将花两分钟,表述清楚我让你读这段文字的目的! 如果你看过武侠小说,你可以把这个经历理解为,你失足落入一个山洞遇到了一位垂暮的老者!而这位老者打算传你一套武功秘籍! 没错,我就是这个老者! 干研发 20 多年了!我也年轻过,奋斗过!我

在阿里云容器服务上开发基于Docker的Spring Cloud微服务应用

本文为阿里云容器服务Spring Cloud应用开发系列文章的第一篇. 一.在阿里云容器服务上开发Spring Cloud微服务应用(本文) 二.部署Spring Cloud应用示例 三.服务发现 四.服务间通信与集成 五.服务智能路由 六.集中配置管理 七.高可用和容错 八.监控和日志 九.服务的部署和发布策略 微服务概述 单体应用通常指在一个程序中满足多个业务或技术领域的需求,不同的需求领域内化为模块.假定我们要开发一个Web应用,通常的MVC模式可以满足要求.针对不同领域有不少代码生成工具

容器部署Spring Cloud项目

部署eureka和config 最后我们在rancher上部署eureka和config项目,首先我们需要在本地创建这两个项目的docker镜像,然后推送到网易云镜像仓库上. 关于使用Docker部署项目以及Rancher的安装及使用,可以参考我另外两篇文章,本文则不再赘述了: Docker化你的SpringBoot项目 安装 Rancher2.x 并部署工作负载 在eureka项目的根目录中,创建一个Dockerfile文件,编辑文件内容如下: FROM hub.c.163.com/libra

十分钟快速创建 Spring Cloud 项目

一般来说,Intelij IDEA 可以通过 Maven Archetype 来快速生成Maven项目,其实 IDEA 集成了 Spring 官方提供的 Spring Initializr,可以非常方便的创建 Maven 项目,而且能自动生成启动类和单元测试代码. 下面我们学习如何快速搭建一个 Spring Cloud 工程,示例使用 Spring Boot 2.2.2 版本,使用少量的代码,可以在半小时内完成项目的搭建. 本文为新手向教程,帮助大家快速入门 Spring Cloud 开发,也作

SpringCloud教程 | 第十一篇: docker部署spring cloud项目

版权声明:本文为博主原创文章,欢迎转载,转载请注明作者.原文超链接 ,博主地址:http://blog.csdn.net/forezp. http://blog.csdn.net/forezp/article/details/70198649 目录(?)[+] 转载请标明出处: http://blog.csdn.net/forezp/article/details/70198649 本文出自方志朋的博客 一.docker简介 Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可

在Linux上安装Tomcat服务器并发布javaweb项目

一.安装Tomcat 1.  将apache-tomcat-7.0.72.tar.gz文件上传至Linux指定文件夹下 2.  用tar –zxvf命令将apache-tomcat-7.0.72.tar.gz文件进行减压

【spring】【spring mvc】【spring boot】获取spring cloud项目中所有spring mvc的请求资源

实现的方法: 1.在父级项目中 或者 每个微服务都引用的项目中添加实体类Resource 2.在父级项目中 或者 每个为服务都引用的项目中写一个工具类,作用是用来获取请求资源 3.在每一个微服务的启动类添加注解@RestController ,并且写一个请求方法调用 工具类的请求资源的方法 4.将获取到的JSON字符串 保存在文件中 5.最后,在需要存储这些信息到数据库中的对应微服务 提供一个请求方法,参数就传递这一个一个的JSON字符串,而请求方法做的事情就是解析JSON,并批量保存到对应数据

使用docker部署spring cloud项目详细步骤

准备工作JDK1.8.Docker1.12.1.CentOS7.0 1.CentOS7.0下JDK1.8的安装 (1)到Oracle官网下载好 jdk-8u181-linux-x64.tar.gz 备用 (2)卸载系统自带的java java -version # 如果有结果出来,则说明自带了javarpm -qa|grep java # 查询出已经安装的javayum -y remove [上面查出来的东西,多个用空格分隔](3)安装jdk cd /usr #进入到要安装jdk的目录mkdir

利用Docker部署Spring Cloud项目

1.按照创建server的方式创建一个项目,可以参照https://www.cnblogs.com/SakerLiu/p/9743577.html 2.在pom.xml文件中添加插件,代码如下所示 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifact