jenkins部署远程服务器(jenkins+svn+maven)

来源:互联网 发布:韩国直播软件 编辑:程序博客网 时间:2024/06/06 09:58

最近公司给了个任务,就是用jenkins做工程的部署工具,用jenkins自动化部署,这样测试人员就不用每次要等开发人员部署好了才能测试,用jenkins测试人员自己登陆上去就可以自己部署项目了。过程简单,傻瓜化,省去重复劳动~

瞎扯了一下,下面进入正题。

1、首先你得有个jenkins部署到服务器上面。关于jenkins如何安装部署百度一大堆,安装很简单,这里就不多讲了。

2、我这边jenkins的版本是2.32.3,不同版本界面略微有所不同,但大体一致

3、登录进去,如下图


4、我们点击左上角的【新建】按钮,出现如下图


按顺序,输入一个名字,自己想好就行,最好要有意义的,方便区别,然后选择构建一个maven项目,然后点击最下面的OK按钮,出现如下图


描述自己随便写,往下翻的话,有很多选项,我说下我了解的吧,其他很多后面 有个问号,自己可以点开,看英语描述,看不懂英语就用翻译软件翻译吧。。。

5、往下翻到源码管理这个地方


我这边工程是在svn上,所以我选择svn,然后输入工程的地址,选择用户,如果第一次进去没有,点击旁边的Add按钮,新增用户密码,这个是svn的用户和密码,用于jenkins自动帮你下载最新代码进行打包。

6、继续往下翻,到最下面的构建后操作。这个操作是关键步骤


选择Send build artifacts over SSH,选择以后出现如下图


这时候选择你要的服务器,这时候是不是发现你没有服务器可以选择,别着急,先看完,后面会讲如何添加远程服务器。

Sourec files这个是配置war包的

Remove prefix这个是移除前缀目录的,主要是我的war包在根目录下面的target下面,所以要移除target这个目录

Remote directory 这个目录要传送war包到目标服务器的目录,这个很关键。

Exec command 这个是要执行的远程脚本目录,主要是用于tomcat的重启,部署,达到自动化部署的目的,如果不写脚本,那就jenkins只能帮你把war包传到目标服务器而已。

然后,然后就点保存,这样就完成了。

7、好了,我们来配置上面说的远程服务器的地址

返回到主页面,选择系统管理-系统设置,如下图


选择系统设置后,出现如下图


然后往下翻,翻到Publish over SSH,如下图


这里就是配置远程服务器的地方。

name:自己随便取,方便记忆就行

Hostname:就是远程服务器的地址

Usename:就是用户名

Remote Directory:这个目录是传输war的最前面的目录。这个很重要,跟上面构建后操作的Remote Directory是会合并到一起的,比如我上面构建后操作中配置的

RemoteDirectory是cstServer_test/tmp,然后这边远程服务器的Remote Directory配置的是/root,那么war包传输过去路径是/root/cstServer_test/tmp目录。

然后密码呢?

别着急,点击旁边的高级就是出现密码输入框,如果是新增的话,点击高级以后还要勾选Use password authentication....这个选项才会出现密码输入框,如下图


好了,到这里就完成远程服务器配置了。刚才如果没配置好,返回去重新配置一下就行了。


8、然后我们来写远程服务器的shell脚本

大概如下,我也是copy来的,如果不懂shell脚本的话,先去学吧,都很基础。。。

[plain] view plain copy
  1. #!/bin/sh  
  2. export JAVA_HOME=/usr/java/jdk1.7.0_75  
  3. kill -9 $(ps -aef | grep tomcat/conf | grep -v grep | awk '{print $2}')  
  4. cd /app/programs/tomcat_test1/webapps  
  5. mv ROOT.war ROOT_`date +%Y%m%d%H%M%S`.war.bak  
  6. #rm -rf ROOT  
  7. mv  /app/programs/temp/mvcDemo3*-SNAPSHOT.war ROOT.war  
  8. cd /app/programs/tomcat_test1/bin  
  9.   
  10. ./startup.sh  
这个要放在刚才配置的目录下面,就是文件所在的目录要跟刚才配置的Exec command目录一致就行了。

这样就可以开始构建了。如果目录配置都没有问题的话,就能正常自动部署。

==================================优雅的分割线=========================================

然而。。。还有个麻烦的事情,就是我们部署上去的时候,会有很多环境,开发环境,测试环境,beta环境等等,总不能每次部署,每次都去自己改一下配置文件吧,这样也

太麻烦了。这篇就先这到这里,如何动态部署配置文件,我另外再写一篇文章。



参考

http://www.cnblogs.com/bookwed/p/4583033.html

http://blog.csdn.net/russ44/article/details/51694074