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

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

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



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

Jenkins中的项目打包部署到远程Tomcat_第1张图片




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

Jenkins中的项目打包部署到远程Tomcat_第2张图片


此外,还需要如下设置

vi  /etc/sysconfig/network

Jenkins中的项目打包部署到远程Tomcat_第3张图片

vi /etc/hosts

Jenkins中的项目打包部署到远程Tomcat_第4张图片

重启后,查看hostname

Jenkins中的项目打包部署到远程Tomcat_第5张图片


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

vi /etc/hosts

Jenkins中的项目打包部署到远程Tomcat_第6张图片

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


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

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

Jenkins中的项目打包部署到远程Tomcat_第7张图片


添加证书

Jenkins中的项目打包部署到远程Tomcat_第8张图片


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

Jenkins中的项目打包部署到远程Tomcat_第9张图片

设置完成后的credential

Jenkins中的项目打包部署到远程Tomcat_第10张图片


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

添加测试环境host

Jenkins中的项目打包部署到远程Tomcat_第11张图片

添加生产环境host

Jenkins中的项目打包部署到远程Tomcat_第12张图片




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




Jenkins中的项目打包部署到远程Tomcat_第13张图片




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

Jenkins中的项目打包部署到远程Tomcat_第14张图片


vi server.sh

       8005修改为8006

               connectionTimeout="20000"
               redirectPort="8443" />                                  8080修改为8090

     8009修改为8010


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

Jenkins中的项目打包部署到远程Tomcat_第15张图片


Jenkins中的项目打包部署到远程Tomcat_第16张图片





上传项目HBKeNong、HBKeNongPicture至192.168.0.239的SVN

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

Jenkins中的项目打包部署到远程Tomcat_第17张图片

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

Jenkins中的项目打包部署到远程Tomcat_第18张图片

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

Jenkins中的项目打包部署到远程Tomcat_第19张图片

Jenkins中的项目打包部署到远程Tomcat_第20张图片

添加用户组

Jenkins中的项目打包部署到远程Tomcat_第21张图片


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

Jenkins中的项目打包部署到远程Tomcat_第22张图片


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

vi /etc/httpd/conf/httpd.conf

Jenkins中的项目打包部署到远程Tomcat_第23张图片


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

chown -R apache.apache HBKeNong

chmod -R 777 HBKeNong

Jenkins中的项目打包部署到远程Tomcat_第24张图片


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

Jenkins中的项目打包部署到远程Tomcat_第25张图片


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

Jenkins中的项目打包部署到远程Tomcat_第26张图片


HBKeNongPicture的操作同理。

Jenkins中的项目打包部署到远程Tomcat_第27张图片


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

Jenkins中的项目打包部署到远程Tomcat_第28张图片





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

Jenkins中的项目打包部署到远程Tomcat_第29张图片


Jenkins中的项目打包部署到远程Tomcat_第30张图片


Jenkins中的项目打包部署到远程Tomcat_第31张图片


Jenkins中的项目打包部署到远程Tomcat_第32张图片


Jenkins中的项目打包部署到远程Tomcat_第33张图片


对HBKeNong执行构建操作

Jenkins中的项目打包部署到远程Tomcat_第34张图片


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

Jenkins中的项目打包部署到远程Tomcat_第35张图片


Jenkins中的项目打包部署到远程Tomcat_第36张图片

Jenkins中的项目打包部署到远程Tomcat_第37张图片

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

Jenkins中的项目打包部署到远程Tomcat_第38张图片


将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包的备份。

Jenkins中的项目打包部署到远程Tomcat_第39张图片


赋予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  的含义如下:

Jenkins中的项目打包部署到远程Tomcat_第40张图片


对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已启动








你可能感兴趣的:(Jenkins中的项目打包部署到远程Tomcat)