注意:这一部分的操作不是在之前的2台服务器上(jenkins服务器和应用部署服务器),而是在测试人员自己的workpc上
从gitlab获取最新代码--maven打包--停止tomcat--部署应用--启动tomcat--验证结果
项目中需要写一个deploy.sh文件放到项目根目录下
文件具体代码:
注意:代码中war包项目名,需要和pom.xml文件中设置的项目名(如果不设置,那么maven项目打包的war包名后面会跟0.0.1-SNAPSHOT)一致
#!/usr/bin/env bash
# 编译+部署order站点
#需要配置如下参数
#项目路径,在Execute Shell 中配置项目路径,pwd就可以获得该项目路径
#export PROJ_PATH=这个jenkins任务在部署机器上的路径
#输入你的环境上tomcat的全路径
# export TOMCAT_APP_PATH=tomcat在部署机器上的路径
### base 函数,关闭tomcat
killTomcat()
{
pid=`ps -ef|grep tomcat|grep java|awk '{print $2}'`
echo "tomcat Id list :$pid"
if [ "$pid" = "" ]
then
echo "no tomcat pid alive"
else
kill -9 $pid
fi
#上面或者下面的方法都可以
#cd $TOMCAT_APP_PATH/bin
#sh shutdown.sh
}
cd $PROJ_PATH/oa_maven_ssm
mvn clean install
# 停tomcat
killTomcat
# 删除原有工程
rm -rf $TOMCAT_APP_PATH/webapps/oa_maven_ssm
rm -f $TOMCAT_APP_PATH/webapps/oa_maven_ssm.war
# 复制新的工程到tomcat上
cp $PROJ_PATH/target/oa_maven_ssm.war $TOMCAT_APP_PATH/webapps/
cd $TOMCAT_APP_PATH/
# 启动Tomcat
cd $TOMCAT_APP_PATH/
sh bin/startup.sh
选择JDK(默认system选项就行了)
把项目部署在某个节点上
勾上retrict where this project can be run
填写要构建的节点
设置gitlab源码库的位置,每次构建,jenkins都会去原码库拉取
repository url填写源码仓库的位置
可选项:源代码默认下载到:/root/.jenkins/workspace/你构建的工程名,可以手动设置下载的目录,设置方法:
additional behavior 右侧点击add,选择check-out to a sub-directory,给从gitlab要下载到的目录命名.如下图:
如果填写了oa,那么下载到的目录就是:/root/.jenkins/workspace/构建的工程名/oa
这里采用shell脚本来实现自动化部署
在build区域点击addbuildstep,选择执行shell
输入
BUILD_ID=DONTKILLME: jenkins执行完成后jenkins进程会关闭但是service进程不会被杀掉
./etc/profile: 作用:加载配置项
export PROJ_PATH=’pwd’
Export TOMCAT_APP_PATH=/root/apace-tomcat-9.0.14
作用:给接下来的deploy.sh文件中的参数赋值,’pwd’的意思是当前所在文件路径
Sh $PROJ_PATH/deploy.sh
作用:执行项目根目录下的shell文件
保存构建配置
执行部署任务
点击左侧立即构建
确定执行结果成功
在构建历史里会出现所有的构建记录,蓝色的代表构建成功(不一定能运行,只是完整走完了构建这个流程),红色代表构建失败.
点进这个构建,再点击右侧的控制台输出,就能看到完整的构建过程.
打开浏览器访问
输入url
应用部署服务器(也就是节点所在ip):tomcat端口/工程名/XXX
注意:这一部分的操作不是在之前的2台服务器上(jenkins服务器和应用部署服务器),而是在测试人员自己的workpc上
git 同步最新代码--停止tomcat--ant脚本打包--部署应用--启动tomcat--验证结果
项目中需要写一个build.xml文件放到项目根目录下(ant会自动检测项目根目录下的build.xml文件)
Xml文件内容较多,请访问
http://192.168.1.57/root/jenkins_oa_test/blob/master/deploy.sh
选择JDK(默认system选项就行了)
把项目部署在某个节点上
勾上retrict where this project can be run
填写要构建的节点
设置gitlab源码库的位置,每次构建,jenkins都会去原码库拉取
repository url填写源码仓库的位置
可选项:源代码默认下载到:/root/.jenkins/workspace/你构建的工程名,可以手动设置下载的目录,设置方法:
additional behavior 右侧点击add,选择check-out to a sub-directory,给从gitlab要下载到的目录命名.如下图:
如果填写了oa,那么下载到的目录就是:/root/.jenkins/workspace/构建的工程名/oa
这里采用shell命令和build.xml文件联合实现自动化部署
Build.xml文件实现遍历+打包+部署
Shell命令负责关闭启动tomcat
写法如下:2个shell命令中间插入ant指令
在build区域点击addbuildstep,选择执行shell
输入:
pid=`ps -ef|grep tomcat|grep java|awk '{print $2}'`
echo "tomcat Id list :$pid"
if [ "$pid" = "" ]
then
echo "no tomcat pid alive"
else
kill -9 $pid
fi
作用:关闭tomcat服务器
在build区域点击addbuildstep,选择invoke ant(执行ant脚本)
选择之前配置的全局工具
Targets里面可以不写,不写默认为all,意思是执行build.xml文件里所有的标签,如:clean,install,build
再建一个shell命令,输入
#防止jenkins构建完成后杀死由jenkins启动的tomat进程
BUILD_ID=DONTKILLME
. /etc/profile
# 启动Tomcat
export TOMCAT_APP_PATH=/root/apache-tomcat-9.0.14
cd $TOMCAT_APP_PATH/
sh bin/startup.sh
保存构建配置
执行部署任务
点击左侧立即构建
确定执行结果成功
在构建历史里会出现所有的构建记录,蓝色的代表构建成功(不一定能运行,只是完整走完了构建这个流程),红色代表构建失败.
点进这个构建,再点击右侧的控制台输出,就能看到完整的构建过程.
打开浏览器访问
输入url
应用部署服务器(也就是节点所在ip):tomcat端口/工程名/XXX
如果你构建任务的环境变量是默认,那么可能出现这个错误,建议看一下3.2.5.
如果不是默认,那么请确认构建任务的的java_home或ant_home和节点所在服务器的是否一致
可以在任务里设置定时构建,来实现周期性的自动化部署项目
需求:每天11.30 ,16.30各构建一次
点击任务进去,点击左侧的configuration,找到build triggers
如果想每天 11.30 16.00各构建一次,那么就构建2个任务