当前位置:文档之家› 基于Jenkins的自动化部署

基于Jenkins的自动化部署

基于Jenkins的自动化部署
基于Jenkins的自动化部署

基于Jenkins+Ant+SVN的自动化部署方案

前言

Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能,通过Jenkins和Ant以及SVN整合,可以比较容易的实现通过SVN获取源代码更新,然后应用Ant自动编译打包,然后部署到相应的服务器。

以下简要说明Jenkins+Ant+SVN实现自动化编译打包部署的流程,本文测试过程均在CentOs 操作系统完成,故略去相关Windows的部署。

1、Jenkins部署

Jenkins的安装部署依赖于JDK,所以目标机器需要有JDK,依据目前Jenkins的版本最好是JDK 1.7版本以后

例如,本文机器安装JDK1.7

Jenkins的安装方式比较灵活,下载jenkins.war 存放到目标目录,打开方式:

1)、在jenkins.war包所在目录执行java -jar jenkins.war

然后通过浏览器输入http://localhost:8080 打开jenkins

2)、第二种启动方式,将jenkins.war文件放入tomcat下的webapps目录下,浏览器输入http://localhost:8080/jenkins 打开jenkins

本文采用yum方式安装,首先将jenkins加入yum源,再使用yum isntall 方式安装1)、添加Jenkins的源

2)、安装Jenkins

安装完成后,会产生/usr/lib/jenkins/ 存放jenkins.war包

配置文件/etc/sysconfig/jenkins

通过配置文件可以看到默认的Jenkins的目录为/var/lib/jenkins/ (初次安装后该目录下为空,通过浏览器打开jenkins后,该目录产生相关文件),文件结构如下:

3)、启动Jenkins

通过service jenkins start 启动jenkins

4)、登录Jenkisn

浏览器输入http://:8080/登录Jenkins

注:该端口默认是8080,需要调整通过配置文件/etc/sysconfig/jenkins 修改即可

2、Jenkins对服务器的管理

该页面结构:

左边为菜单,右上角用户登录,右下为内容区显示目前所管理的内容

几乎所有的管理动作都是在“系统管理”中完成,包括插件管理、系统配置、节点管理……

其中【系统设置】定义的都是系统全局的参数,例如需要管理的远程机器、需要远程拷贝的机器等的连接均是通过此处配置

【插件管理】包括可更新、可选插件、已安装、高级,其中可选插件中默认包括很多插件,几乎Jenkins所有的动作都是通过插件完成的,这里有SVN插件、SSH插件、SCP插件、Git 插件……很多很多插件,都可以根据需要自行勾选安装。

3、以实例测试通过SVN获取源码、打包、部署流程。

1)、新建一个项目JenkinsTest001 目的通过SVN获取源码

新建,在弹出页面输入要建立的项目名称

点击“OK”提交,即进入该项目的配置页面,接着将要进行相关的配置

【描述】,即项目的概括描述,可填可不填

由于我们要测试的这个项目目的比较简单,仅仅只需要配置SVN的相关参数及项目源码存放的目标路径即可

我们将SVN源码存放于/home/Mrtzhang/jenkinstest/JenkinsTest001目录下

我们点击“高级”,勾选“使用自定义的工作空间”,目录填写目标路径/home/Mrtzhang/jenkinstest/JenkinsTest001

接下来,【源码管理】默认是none,我们选择Subversion

配置SVN 相应的URL ,根据弹出的提示输入用户名和密码,然后在Credentials中选择即可

完成SVN相关配置后,点击保存,项目创建完成,返回面板即可看见新建立的项目

由于项目刚创建完,没有进行过构建,所以状态还是未构建

此时,我们查看项目目录,还是为空的,没有构建当然为空了

下面,我们点击“构建”,从SVN获取源码

或者进入配置页面,点击立即构建

成功后,菜单栏下面会出现相应的记录

注:目标目录一定要赋权,否则会构建失败,失败后通过点击Build History中的记录,在

console output中查看失败原因

成功后也有相应的记录信息

再查看项目目录,源码成功获取

2)、在该项目的基础上添加一个构建动作,编译生成war包

这里由于是要用Ant去编译打包,需要build.xml文件,该文件我已提前备好,关于Ant 打包的基础这里不讨论。

我们利用上一个项目JenkinsTest001的现有结果,添加构建动作,完成打包

构建——>Invoke Ant

3)、将生成的war包拷贝到远程机器进行相关部署

先设置全局变量,在系统管理-系统配置中设置Publish over SSH 参数(前提已经安装过相关插件)

这里有指定远程机器(如192.168.1.162)的目录/root/test,即后面我们需要将Jenkins生成的war包远程拷贝到该目录下

在完成系统设置后,我们新建一个项目“测试-SendFileToRemote And Do Shell (192.168.1.162)”

指定工作路径(该路径为所创建项目当前的工作路径及Jenkins上的工作路径,由于我们Jenkins生成的war文件所在路径/home/Mrtzhang/jenkinstest/JenkinsTest001/RkCloud/dist,我们即定义为该路径)

然后创建构建过程:

第一步,将目标文件拷贝到远程机器

第二步,在远程机器上执行相关shell脚本

保存,完成项目创建。

点击立即构建

查看构建信息

在远程机器(192.168.1.162)上查看/root/test 目录是否拷贝成功

检验远程机器shell脚本是否执行,测试过程中shell脚本执行结束会在当前目录文件下写入当前的时间,依此判断是否执行脚本

可以看到,文件远程拷贝成功,并且在远程机器执行shell脚本成功。

4、总结:

通过以上过程可以看到,Jenkins完全可以做到从SVN获取源码打包并部署到远程机器上,鉴于目前我们实际的情况,打包需要分内网、运营环境甚至开发环境、测试环境,使用Jenkisns反而效率不高,我们可以先实现自动部署(即一键部署),后续再完善优化。

相关主题
文本预览
相关文档 最新文档