参考:http://www.tuicool.com/articles/buEFfi7
jenkins、ssh实现了远程自动化部署或者发布。一般情况下,我们都会要把项目部署到远程Linux服务器上,所以这节的主要内容是:
1、部署(发布)开发环境下的Web项目到远程Linux服务器;
2、实现自动备份;
当然,发布程序要比部署要简单,不需要执行远程脚步。
准备环境:
jenkins环境,Linux服务器,linux安装tomcat。
步骤:
1、安装插件,登录到Jenkins后台,选择“系统管理”—>“管理插件”,在可选插件中,选择 Publish Over SSH ,安装这个插件;
2、安装完后,配置这个选项,在系统管理中找到,如下图:
如果SSH是通过Key来进行验证的这里需要输入相关服务器的Key,要是通过用户名密码进行验证的话,SSH Key的输入栏可以全部置空。
我是通过用户名和密码进行验证的,因此SSH Server要配置服务器的信息还有用户名和密码。
这里只说下主要配置项,SSH Server Name,服务器名称,自己随便起个名字即可;Hostname,服务器的IP地址;Username,远程服务器的帐号,这里我用了root;Remote Directory,访问路径,“/”根路径即可。
其他的选项参考, http://blog.csdn.net/wangmuming/article/details/22925895。
3、这次不用新建项目了,以上次建的项目为基础,做个拷贝,在此基础上修改就行,如图:
4、上面的都不用动,只修改“构建后操作”,把上次部署war包的方式(Deploy war/ear to a container)删除,添加刚才安装插件后的(Send build artifacts over SSH),配置见图:
需要注意的地方:Remote directory,这个最好配置为绝对路径,主要是为了临时放置项目的地方,在第5步可以看到;如果只是发布程序,exec command 不需要设置;如果部署,需要设置远程deploy.sh 脚本位置。
5、增加deploy.sh脚本,新下载的tomcat的bin目录没有该文件,自己新建一个即可,里面的内容如下,根据自己的实际情况进行调整,都是一些常见的shell命令:
#!/bin/sh export JAVA_HOME=/usr/java/jdk1.7.0_75 kill -9 $(ps -aef | grep tomcat | grep -v grep | awk '{print $2}') cd /app/programs/tomcat_test1/webapps mv ROOT.war ROOT_`date +%Y%m%d%H%M%S`.war.bak #rm -rf ROOT mv /app/programs/temp/mvcDemo3*-SNAPSHOT.war ROOT.war cd /app/programs/tomcat_test1/bin ./startup.sh
6、经过以上配置后,访问测试,运行通过。
总结:截至到现在,已经完成了自动化部署到本地和远程的全部配置。我这两篇文档主要侧重于操作实现和备忘,一些细节未进行说明,有需要的朋友可以自行往下深入研究,可以一块讨论。。。