jenkins的deploy plugin 插件并不支持resin,所以这里分享一下用shell脚本做的远程动态部署war包到resin.
1.下载安装jenkins 从http://mirrors.jenkins-ci.org/war/latest/jenkins.war下载war包,丢到web容器中 就可以访问了
2.配置job的过程可参照http://blog.youkuaiyun.com/littlechang/article/details/8642149
3.由于需要部署的机器和当前机器不是同一台机器,需要配置ssh免密登录,配置方法参见:http://www.cnblogs.com/shuaiwhu/archive/2010/08/24/2065091.html,这里我打war包的机器ip为192.168.100.5, 需要部署的机器ip为192.168.100.6
4.在配置job并生成war包无误后,在配置job中选择 “增加构建步骤” --“execute shell”一项,在command中填写
rm /home/apache-tomcat-7.0.59-jenkins/webapps/deplory/manager.war
cp /home/.jenkins/jobs/am_test/workspace/build/testwar/manager.war /home/apache-tomcat-7.0.59-jenkins/webapps/deplory/
ssh -p 20755 192.168.100.6 'bash -x -s' < /home/scripts/autodeploy.sh
这里 我的ssh端口是20755
上边这段脚本的意思是 把tomcat目录中原有的manager.war删掉,替换成新打的war包并在需要部署的机器 192.168.100.6 上执行/home/scripts/autodeploy.sh这段脚本
#!/bin/bash
export JAVA_HOME=/usr/local/java/jdk1.6.0_21
resin_pid=`/usr/sbin/lsof -n -P -t -i :8888`
watch_dog_pid=`/usr/sbin/lsof -n -P -t -i :6666`
echo $watch_dog_pid
echo $resin_pid
[ -n "$watch_dog_pid" ] && kill -9 $watch_dog_pid
[ -n "$resin_pid" ] && kill -9 $resin_pid
cd /home/resin-pro-3.1.12/upload
mv manager.war manager.war.bak
wget '192.168.100.5:8080/deplory/manager.war'
rm -rf /home/resin-pro-3.1.12/webapps/manager*
cp /home/resin-pro-3.1.12/upload/manager.war /home/resin-pro-3.1.12/webapps/
sh /home/resin-pro-3.1.12/bin/httpd.sh start
这里我resin的端口为8888 watchdag的端口为6666
运行一遍,查看jenkins job的控制台输出没有问题,部署ok