jenkins-自动化部署任务开发(maven和非maven项目)

自动化部署任务开发(maven)

注意:这一部分的操作不是在之前的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

 

 

 

 

访问jenkins,创建jenkins任务

新建任务,构建一个自由风格的软件

 

 

 

填写service信息

选择JDK(默认system选项就行了)

 

把项目部署在某个节点上

勾上retrict where this project can be run

填写要构建的节点

 

 

配置git参数

设置gitlab源码库的位置,每次构建,jenkins都会去原码库拉取

repository url填写源码仓库的位置

 

可选项:源代码默认下载到:/root/.jenkins/workspace/你构建的工程名,可以手动设置下载的目录,设置方法:

additional behavior 右侧点击add,选择check-out to a sub-directory,给从gitlab要下载到的目录命名.如下图:

 

jenkins-自动化部署任务开发(maven和非maven项目)_第1张图片

如果填写了oa,那么下载到的目录就是:/root/.jenkins/workspace/构建的工程名/oa

 

 

填写构建语句,实际构建测试环境

这里采用shell脚本来实现自动化部署

在build区域点击addbuildstep,选择执行shell

jenkins-自动化部署任务开发(maven和非maven项目)_第2张图片

输入 

jenkins-自动化部署任务开发(maven和非maven项目)_第3张图片

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文件

 

保存构建配置

 

 

启动服务

执行部署任务

点击左侧立即构建

 

确定执行结果成功

在构建历史里会出现所有的构建记录,蓝色的代表构建成功(不一定能运行,只是完整走完了构建这个流程),红色代表构建失败.

jenkins-自动化部署任务开发(maven和非maven项目)_第4张图片

点进这个构建,再点击右侧的控制台输出,就能看到完整的构建过程.

jenkins-自动化部署任务开发(maven和非maven项目)_第5张图片

打开浏览器访问

输入url

应用部署服务器(也就是节点所在ip):tomcat端口/工程名/XXX

 

 

自动化部署任务开发(非maven)

注意:这一部分的操作不是在之前的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

 

 

访问jenkins,创建jenkins任务

新建任务,构建一个自由风格的软件

 

 

填写service信息

选择JDK(默认system选项就行了)

 

把项目部署在某个节点上

勾上retrict where this project can be run

填写要构建的节点

 

 

配置git参数

设置gitlab源码库的位置,每次构建,jenkins都会去原码库拉取

repository url填写源码仓库的位置

 

可选项:源代码默认下载到:/root/.jenkins/workspace/你构建的工程名,可以手动设置下载的目录,设置方法:

additional behavior 右侧点击add,选择check-out to a sub-directory,给从gitlab要下载到的目录命名.如下图:

 

jenkins-自动化部署任务开发(maven和非maven项目)_第6张图片

如果填写了oa,那么下载到的目录就是:/root/.jenkins/workspace/构建的工程名/oa

 

填写构建语句,实际构建测试环境

这里采用shell命令和build.xml文件联合实现自动化部署

Build.xml文件实现遍历+打包+部署

Shell命令负责关闭启动tomcat

 

写法如下:2个shell命令中间插入ant指令

在build区域点击addbuildstep,选择执行shell

jenkins-自动化部署任务开发(maven和非maven项目)_第7张图片

输入:

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

保存构建配置

 

 

启动服务

执行部署任务

点击左侧立即构建

 

确定执行结果成功

在构建历史里会出现所有的构建记录,蓝色的代表构建成功(不一定能运行,只是完整走完了构建这个流程),红色代表构建失败.

jenkins-自动化部署任务开发(maven和非maven项目)_第8张图片

点进这个构建,再点击右侧的控制台输出,就能看到完整的构建过程.

 

打开浏览器访问

输入url

应用部署服务器(也就是节点所在ip):tomcat端口/工程名/XXX

 

问题释疑

找不到jdk或ant路径

如果你构建任务的环境变量是默认,那么可能出现这个错误,建议看一下3.2.5.

如果不是默认,那么请确认构建任务的的java_home或ant_home和节点所在服务器的是否一致

 

 

定时构建

可以在任务里设置定时构建,来实现周期性的自动化部署项目

需求:每天11.30 ,16.30各构建一次

点击任务进去,点击左侧的configuration,找到build triggers

jenkins-自动化部署任务开发(maven和非maven项目)_第9张图片

 

如果想每天 11.30 16.00各构建一次,那么就构建2个任务

 

你可能感兴趣的:(运维工具)