Jenkins部署到远程(Linux服务器)

参考: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的输入栏可以全部置空。

 
Jenkins(Hudson)实现远程部署Web项目 Publish Over SSH Plugin插件

我是通过用户名和密码进行验证的,因此SSH Server要配置服务器的信息还有用户名和密码。

 
Jenkins(Hudson)实现远程部署Web项目 Publish Over SSH Plugin插件

这里只说下主要配置项,SSH Server Name,服务器名称,自己随便起个名字即可;Hostname,服务器的IP地址;Username,远程服务器的帐号,这里我用了root;Remote Directory,访问路径,“/”根路径即可。

其他的选项参考, http://blog.csdn.net/wangmuming/article/details/22925895

3、这次不用新建项目了,以上次建的项目为基础,做个拷贝,在此基础上修改就行,如图:

Jenkins(Hudson)实现远程部署Web项目

4、上面的都不用动,只修改“构建后操作”,把上次部署war包的方式(Deploy war/ear to a container)删除,添加刚才安装插件后的(Send build artifacts over SSH),配置见图:

Jenkins(Hudson)实现远程部署Web项目

需要注意的地方: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、经过以上配置后,访问测试,运行通过。

总结:截至到现在,已经完成了自动化部署到本地和远程的全部配置。我这两篇文档主要侧重于操作实现和备忘,一些细节未进行说明,有需要的朋友可以自行往下深入研究,可以一块讨论。。。