本文的前后端分离项目,技术框架是:
Springboot + Vue + Maven + SVN + Redis + Mysql + Nginx + JDK
所以首先需要安装以下:
在腾讯云服务器OpenCLoudOS系统中安装jdk(有图详解)
在腾讯云服务器OpenCLoudOS系统中安装mysql(有图详解)
在腾讯云服务器OpenCLoudOS系统中安装nginx(有图详解)
在腾讯云服务器OpenCLoudOS系统中安装redis(有图详解)
在腾讯云服务器OpenCLoudOS系统中安装svn(有图详解)
在腾讯云服务器OpenCLoudOS系统中安装maven(有图详解)
在腾讯云服务器OpenCLoudOS系统中安装Jenkins(有图详解)
用svn上传前后端代码参考:
登录Jenkins,在上篇文章中讲过
在腾讯云服务器OpenCLoudOS系统中安装Jenkins(有图详解)
自己服务器的IP+端口
maven配置如下:
文中画框的地方,就是上篇文章中的maven安装地址
在腾讯云服务器OpenCLoudOS系统中安装maven(有图详解)
JDK配置如下:
上文中的路径,就是服务器中jdk的安装路径,文章在腾讯云服务器OpenCLoudOS系统中安装jdk(有图详解)中有讲过
也可以 echo $JAVA_HOME找出
maven地址配置:
安装Publish over SSH
Publish over SSH: jenkins远程服务器发送文件,此插件作用是将svn上的代码自动打包部署到其他服务器上去
配置Publish Over SSH
拉到最底下,新增
备注:
这里的Remote Directory是所有部署文件的根目录配置,它会和后面项目中的上传路径进行叠加
例如本文中这里配置 /usr/local/nginx
后端项目上传地址中配置 /fabricate
所以后端项目自动化部署的jar文件实际上传地址是两个地址的叠加: /usr/local/nginx/fabricate
配置目标主机密码并测试连接:
点击运用、保存
安装SVN:
每次安装完插件,可能不会生效,所以需要重启Jenkins
具体重启方法和重启路径请看这篇文章:
在腾讯云服务器OpenCLoudOS系统中安装Jenkins(有图详解)
cd /etc/init.d
./jenkins stop
./jenkins start
选择你刚刚添加的svn用户:
增加构建步骤:
增加构建后操作步骤:
Source files:源文件。就是maven打包后生成的哪个文件要打包到目标服务器
Remove prefix:移除前缀。因为maven打包后,会有几层文件夹,我们只需要把要部署的jar之前的文件夹都删除即可
Remote directory:远程文件夹。maven打包后形成的jar要部署到哪个路径下
Exec command:部署包jar文件到了目标路径下后,需要启动的shell脚本
参考:
对于maven有多个子工程的,本地maven打包后,形成的jar文件是这个:
fabricate-admin.jar
这个jar就是我们要部署到目标服务器并要启动文件fabricate.sh启动的jar
把jar启动文件上传至该路径下:
给文件夹赋权:
chmod -R 777 /usr/local/nginx/fabricate/
这里赋权两个作用:
启动文件如下:
export JAVA_HOME PATH CLASSPATH
JAVA_HOME=/app/soft/jdk/jdk1.8.0_341 #你自己的jdk路径
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
APP_HOME=`pwd`
AppName=fabricate-admin.jar #你自己的部署包jar的名字
echo " =====关闭Java应用======"
PROCESS=`ps -ef |grep java |grep -v grep|grep $APP_HOME/$AppName|awk '{print $2}'`
for i in $PROCESS
do
echo "Kill the $1 process [ $i ]"
kill -9 $i
done
echo " =====启动Java应用======"
nohup JAVA_HOME/bin/java -jar $APP_HOME/$AppName > $APP_HOME/$AppName.log 2>&1 &
echo $! > savePid.txt
cat savePid.txt
rm savePid.txt
保存:
点击构建:
可看控制台日志:
如果构建失败,可以从控制台日志看错误信息,以下三个步骤也可排查:
自动化部署有三步:
一般默认的工作空是**/var/lib/jenkins/workspace**
在这个路径下看自己的代码是否通过svn下载到了工作空间
代码路径下是否经过了maven打包形成target文件夹,产生部署包jar
可观察上一步产生的jar,有没有推过来
这个就是你配置的推送SSH的jar部署路径
只需观察上文启动脚本中的输出日志文件是否实时生成:
out.log日志文件生成
5.1 下载安装nodejs
http://nodejs.cn/download/
找到适合自己项目的nodejs版本,如果本地代码调试通的,cmd中node -v 看自己前端项目适合的版本
我这个项目适合的版本是v14.9.0
创建nodejs目录,并把安装包传到目录下
mkdir -p /app/soft/nodejs
解压安装包:
tar -zxvf node-v14.9.0-linux-x64.tar.gz
所以nodejs的安装目录是:
添加环境变量:
vi /etc/profile
在最后一行添加以下三行,其中NODE_HOME是刚刚nodejs的安装解压目录:
保存退出后,
source /etc/profile
查看nodejs是否安装成功:
node -v
npm -v
安装成功后,去Jenkins中进行配置nodejs
安装nodejs插件:
搜索、勾选、安装
重启Jenkins,使之生效:
cd /etc/init.d/
./jenkins stop
./jenkins start
升级适合忘记截图了,下面的框框地方有个【升级】
安装nodejs缺少的依赖:
安装成功后重启Jenkins
重启Jenkins,使之生效:
cd /etc/init.d/
./jenkins stop
./jenkins start
再去配置nodejs的安装目录
配置并保存
由于是前后端分离项目,用nginx进行前后端连接,详情可以参考这篇文章:
Jenkins自动化部署时,前端的代码打包在nginx安装目录的html目录下,所以先对该目录进行读写赋权
chmod -R 777 /usr/local/nginx/html/
新建前端项目:
配置svn: