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

vue

一、 相关插件安装

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

以上是 Linux上GitLab+Jenkins实现Vue、Spring Cloud项目的自动部署 的全部内容, 来源链接: utcz.com/z/375852.html

回到顶部