这边都是maven工程的相关处理:其中分为打成war包和打成jar包二种方式的自动化部署。
一、打成war包工程的步骤:
先写jenkins安装后的配置吧,后面再加前面的相关配置。
jenkins安装后
1、新建任务
2、新建了任务进行配置
在进行配置第二步的时候,关键开始了,一般情况,会在这卡一会。
注意点:1、你的jenkins服务器上 git 的账号在你的git项目管理中需要有账号,并且 jenkins的服务器需要生成密钥和私钥。这样就可以通过SSH来获取git服务器上的代码了。(就相当于把jenkins服务器当作你自己的电脑,生成密钥,下代码)
2、jenkins服务器 生成的密钥和私钥如何处理,可查看这篇文章https://blog.csdn.net/qq_40026782/article/details/95744994。(处理后,就是在下图的第二个框中能够选择了)
配置第四步:配置你的工程打包方式,我这边是maven工程war包打包
注意!注意!注意!重要的事情锁三遍,配置第六步重点来了
1、选择自己的服务器(这里是下拉选择,相关配置是在jenkins管理界面的 “系统管理”—“系统设置” —“Publish over SSH” 里面添加的 可参考https://blog.csdn.net/qq_40026782/article/details/95746691)
2、2是执行了你的git工程的pom文件打包后,你的war包位置。
3、3指的是忽略的路径,可直接参考我的。
4、4是指打包后对项目所在的服务器,经行的相关操作,包括停服务、备份、打包、启服务。
注意:
在第4步的时候,我的项目是linux系统,所以直接写的Linux指令。这个指令是你在1配置自己的服务的服务器的时候,会写项目服务器登入账号和密码(为了方便最好直接用root账号,不然各种权限限制),这个指令就是这个账号执行的相关linux 命令,都需要加上sudo 经行赋权,其他的命令就是这个账号在linux系统中如何(1)停tomcat(2)备份(3)移动war包(4)启动tomcat。这一系列的操作。我这边附上参考语句自己体会下:
#!/bin/sh
#defined
tomcat_home="/data/knb-tomcat-8080"
war_webapps="/data/knb-es"
war_file="ebs_es_pt"sudo sh "$tomcat_home"/bin/kill.sh
echo "*****Backup and remover war file*****"
sudo mv "$war_webapps"/"$war_file" "$war_webapps"/"$war_file"`date +%Y-%m-%d_%T`
sudo mkdir /data/knb-es/"$war_file"
echo "*****copy war to webapps*****"
sudo unzip -oq /var/data/backup/"$war_file".war -d /data/knb-es/ebs_es_pt/
sudo rm -rf /var/data/backup/"$war_file".war
echo "*****Start tomcat*****"
sudo sh "$tomcat_home"/bin/startup.sh
当然如果你的服务器用了docker那么在sudo 后面还得加docker exec -i "$docker_name"
docker的服务器参考如下:
#!/bin/sh
#defined
tomcat_home="/var/data/tomcat_ebs_8092"
host_home="/var/data/tomcat_ebs/tomcat_ebs_8092"
war_webapps="/data/webapp8092"
war_file="erpt"
docker_name="tomcat_ebs"sudo docker exec -i "$docker_name" sh "$tomcat_home"/bin/kill.sh
echo "*****Backup and remover war file*****"
sudo docker exec -i "$docker_name" mv "$war_webapps"/"$war_file".war "$war_webapps"/"$war_file".war.`date +%Y-%m-%d_%T`.save
sudo docker exec -i "$docker_name" rm -rf "$war_webapps"/"$war_file"
echo "*****copy war to webapps*****"
sudo mv /var/data/backup/"$war_file".war "$host_home"/
sudo docker exec -i "$docker_name" mv "$tomcat_home"/"$war_file".war "$war_webapps"/
echo "*****Start tomcat*****"
sudo docker exec -i "$docker_name" sh "$tomcat_home"/bin/startup.sh
这边docker就不详细说了,linux系统docker的相关搭建和配置在我的另一个文章有介绍,什么是docker外部路径和内部路径
linux系统docker安装后,创建容器(Linux系统安装系列)
tomcat中的bin目录下的kill.sh文件一般没有,就相当于shutdown.sh 这执行的东西
我这边的kill.sh 内容是下面的,可以直接拿去用:
ps -ef |grep /bin/java|grep "$path"|grep -v grep|cut -c 9-15|xargs kill -9
还有就是 “sudo sh "$tomcat_home"/bin/startup.sh” 执行这个的时候可能会报错,这时候需要在tomcat的startup.sh 文件中添加:
source /etc/profile
export LANG="en_US.UTF-8"
给个图给你们看看
关键的配置服务这边还有可能不理解的,可查看相关补充说明 : https://blog.csdn.net/qq_40026782/article/details/95748124
配置好了后直接点确定就ok
3、相关配置ok了后,就可以构建了。
下面的构建历史,点击小圆圈可以查看控制台构建输出情况。
最后附上docker经行构建时候可能会遇到的问题:
问题一:
解答:这个是你的服务器登入的用户名或密码错误,相关配置是在jenkins管理界面的 “系统管理”—“系统设置” —“Publish over SSH” 里面添加的 可参考https://blog.csdn.net/qq_40026782/article/details/95746691
问题二:
解答:这个就是我上面说的,需要在tomcat启动文件 startup.sh 加上 :
source /etc/profile
export LANG="en_US.UTF-8"
给个图给你们看看
二、自动化部署vue前端代码
我这边是用的tomcat的启动vue前端的,所以配置和一差不多,唯一的区别就是在配置第六步有区别,我这边就写下重点的配置六吧:
因为vue打包的是一个文件夹,所以在配置第六步的时候我们需要分2步走:1、jenkins服务器上打包vue,并压缩成文件。2、上传项目服务器,停服务,备份、解压、启服务。我把配置贴出来,查考下
关键点注意:上面我们打成war包的时候选择的是 “Build” 而这边我们选择 “执行shell”
第一步:
第二步:
三、打成jar包工程的步骤:
我这边是用的tomcat的启动jar包工程的,所以配置和一差不多,唯一的区别就是在配置第六步有区别,我这边就写下重点的配置六吧:同样都是用 “Build”但是在build之前需要调整下参数确保打包成功!
第一步:打包前的操作,调整配置文件(看情况,需要调整就可以用pre steps调整,不需要就不用了 ,主要是让你们了解下pre steps 的用法)
第二步:打包
第三步:项目服务器部署