Jenkins中的项目打包部署到远程Tomcat

Jenkins的安装与配置,请参考文章《Jenkins安装+配置+任务创建》

Jenkins构建成功之后,可以在/usr/local/JenkinsHome/workspace中看到



在系统管理-插件管理-已安装插件中,查看publish over ssh是否安装





hostname设置

192.168.0.239  为SVN、Nexus、Jenkins所在虚拟机

192.168.0.240  为模拟测试环境虚拟机

192.168.0.241 为模拟生产环境虚拟机

分别修改240、241机器的hostname,下图仅使用hostname指令修改主机名,重启后失效

240   192.168.0.240-test

241   192.168.0.241-product



此外,还需要如下设置

vi  /etc/sysconfig/network


vi /etc/hosts


重启后,查看hostname



在192.168.0.239所在机器进行如下配置

vi /etc/hosts


/etc/hosts类似于DNS,即ip地址与hostname的对应关系。Linux系统在向DNS服务器发出域名解析请求之前,先查询/etc/hosts文件,查看是否存在相关记录。


系统管理-系统设置-ssh remote hosts

设置登录240、241Linux虚拟机的用户名和密码



添加证书



填写用户名、密码及相关信息


设置完成后的credential



系统管理-系统设置-ssh remote hosts

添加测试环境host


添加生产环境host





配置Publish over SSH,添加SSH Server: 192.168.0.240-test、192.168.0.241-product








Linux虚拟机配置2个Tomcat

每一个tomcat配置指向自己的环境变量,否则2个Tomcat不能同时成功启动

修改环境变量

vi /etc/profile

添加如下内容

# first tomcat
CATALINA_BASE=/usr/local/test-tomcat-01
CATALINA_HOME=/usr/local/test-tomcat-01
TOMCAT_HOME=/usr/local/test-tomcat-01
export CATALINA_BASE CATALINA_HOME TOMCAT_HOME


# second tomcat
CATALINA_2_BASE=/usr/local/test-tomcat-02
CATALINA_2_HOME=/usr/local/test-tomcat-02
TOMCAT_2_HOME=/usr/local/test-tomcat-02
export CATALINA_2_BASE CATALINA_2_HOME TOMCAT_2_HOME


执行指令source /etc/profile  ,使上述环境变量配置立即生效


第一个Tomcat即test-tomcat-01不做改动,只对第二个Tomcat即test-tomcat-02的catalina.sh、server.xml进行修改

vi catalina.sh

添加如下内容

export CATALINA_BASE=$CATALINA_2_BASE
export CATALINA_HOME=$CATALINA_2_HOME



vi server.sh

<Server port="8006" shutdown="SHUTDOWN">       8005修改为8006

<Connector port="8090" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />                                  8080修改为8090

<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />     8009修改为8010


此时,分别启动test-tomcat-01、test-tomcat-02








上传项目HBKeNong、HBKeNongPicture至192.168.0.239的SVN

在192.168.0.239虚拟机中,查看svn-tomcat已启动


登录SVN的管控台http://192.168.0.239:9090/svnadmin/     SVN管控台的安装与使用可参考《Linux中apache http server+svn+svnadmin整合》


下面需要添加2个项目HBKeNong、HBKeNongPicture



添加用户组



给developer用户组分配了用户admin,此时admin就拥有了对HBKeNong的读写操作权限



因为192.168.0.239虚拟机上使用的是Apache和SVN整合,在使用svnadmin对资源进行管理的时候,用户的group和user均需要为apache

vi /etc/httpd/conf/httpd.conf



然而新建的HBKeNong所属的用户组和用户均为root,需要做如下设置

chown -R apache.apache HBKeNong

chmod -R 777 HBKeNong



选中待导入的项目HBKeNong--右键Tortoise SVN -- Import



在SVN admin中查看刚上传的项目



HBKeNongPicture的操作同理。



下载SmartSVN,检出项目并导入到Eclipse中






在Jenkins中新建任务并执行构建











对HBKeNong执行构建操作



查看构建过程的控制台输出





同理,HBKeNongPicture项目也构建成功了



将Jenkins构建的war包发布到模拟测试环境

模拟测试环境在192.168.0.240Linux虚拟机上,在/usr/local下面有test-tomcat-01test-tomcat-02分别用来部署HBKeNong、HBKeNongPicture


在192.168.0.240 测试环境虚拟机中/usr/local目录下,新建目录test_env_update_war用于存放最新的待部署的war包,新建目录test_env_script用于存放项目部署的脚本,新建目录test_war_backup用于存放war包的备份。



赋予test_HBKeNong_deploy.sh脚本执行权限

chmod 777 test_HBKeNong_deploy.sh

#!/bin/bash
DATE=`date +%F-%H-%M`

PROJECT='HBKeNong-1.0-SNAPSHOT'
PROJECT_TARGET='HBKeNong'

ROOTDIR='/usr/local'
TOMCAT_HOME='/usr/local/test-tomcat-01'

#停止tomcat服务
echo '停止test-tomcat-01'
sh ${TOMCAT_HOME}/bin/shutdown.sh
ps -ef | grep ${TOMCAT_HOME}/ | grep -v grep| awk '{print $2}' | xargs kill -9

cp ${ROOTDIR}/test_env_update_war/${PROJECT}.war ${ROOTDIR}/test_war_backup/test-${PROJECT}-${DATE}.war

rm -rf ${TOMCAT_HOME}/webapps/${PROJECT_TARGET}.war
rm -rf ${TOMCAT_HOME}/webapps/${PROJECT_TARGET}

mv ${ROOTDIR}/test_env_update_war/${PROJECT}.war ${TOMCAT_HOME}/webapps/${PROJECT_TARGET}.war

#启动tomcat服务
echo '启动test-tomcat-01'
sh ${TOMCAT_HOME}/bin/startup.sh


其中,ps -ef | grep ${TOMCAT_HOME}/ | grep -v grep| awk '{print $2}' | xargs kill -9  的含义如下:



对HBKeNong进行构建



访问http://192.168.0.240:8090/HBKeNongPicture/  ,测试可以正常访问



HBKeNongPicture同理

在test-tomcat-02中的catalina.sh中添加如下内容

export JAVA_HOME=/usr/local/localsoftware/jdk1.8.0_121
export JRE_HOME=/usr/local/localsoftware/jdk1.8.0_121/jre


执行构建



访问http://192.168.0.240:8090/HBKeNongPicture/





Tomcat设置开机自启动

192.168.0.240   为模式测试环境,该虚拟机上存在test-tomcat-01、test-tomcat-02


在192.168.0.240 执行指令   vi /etc/rc.d/rc.local,添加如下2行内容

sh    /usr/local/test-tomcat-01/bin/startup.sh

sh     /usr/local/test-tomcat-02/bin/startup.sh



重启后,查看是否tomcat已启动








猜你喜欢

转载自blog.csdn.net/chenbinqq/article/details/79980723