当前位置: 首页>编程语言>正文

jenkins svn构建 jenkins集成svn

脚本方式:

一、引言
在日常的开发过程中,发布版本的流程一般都是手动部署,具体如下图所示:

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_tomcat,第1张

我们需要把代码提交到SVN上,然后再把SVN上每个人提交的最新模块的代码拉下来,然后编译打包,最后手动上传到Tomcat上。这种方式很繁琐,也会浪费时间,如果有测试环境和生产环境,则效率更低。下面介绍一下Jenkins的使用和安装。

二、原理
Jenkins的思想就是自动化部署,“自动化”的具体体现在:当我们向版本库(SVN)提交新的代码后,应用服务器(Tomcat)就会自动从我们的SVN上拉去新的war包,然后重新部署,用户或测试人员看到的就是最新的应用程序。
Jenkins的原理图,如下所示:

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_Jenkins_02,第2张

搭建上述持续集成环境可以把整个构建、部署过程自动化,很大程度上减轻工作量。对于我们程序员的日常开发来说不会造成任何额外负担,自己把代码提交上去之后,服务器上运行的马上就是最新版本,一切都发生在无形中,是不是很方便。

三、安装

1、在安装使用Jenkins之前,请确认已经安装好以下环境:JDK,Tomcat,Maven,SVN

2、在安装使用Jenkins之前,还要知道环境的配置信息
(1)设置并记录一下版本库(SVN)的访问账号密码

(2)设置并记录Tomcat 服务器。配置文件位置:tomcat/conf/

vim tomcat-users.xml

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script,manager-jmx,manager-status"/>

vim context.xml

<Context antiResourceLocking="true">

更改配置之后重启 tomcat

3、安装步骤
(1)Jenkins主体程序安装配置

1)、把Jenkins.war放在Tomcat解压目录/webapps目录下
2)、重启Tomcat 并通过浏览器访问:http://ip:port/jenkins
若首次访问一直卡在启动界面,解决如下:
原因:jenkins里面文件指向国外的官网,因为防火墙的原因连不上
解决方法:将配置文件里面的url换成国内的即可。----修改配置之后重启

find / -name hudson.model.UpdateCenter.xml
vim /root/.jenkins/hudson.model.UpdateCenter.xml

将 URL 替换成下面的地址
<url>http://mirror.xmission.com/jenkins/updates/update-center.json</url>

3)、cat /root/.jenkins/secrets/initialAdminPassword    查看密码并登录

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_Jenkins_03,第3张

(2)Jenkins安装

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_tomcat_04,第4张

选择哪种方式都不会对后续操作有太大影响,因为有需要的插件我们可以在后续有针对性的安装,在这里选择“安装推荐的插件”。

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_tomcat_05,第5张

打×的插件是由于网络传输导致的安装失败,后面再重新安装即可。注意:这个步骤中如果选择了安装插件则系统必须能够联网。

可以选择使用admin账户继续,后面有需要仍然有机会注册新账户。

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_服务器_06,第6张

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_tomcat_07,第7张

开始使用Jenkins。

点击系统管理。

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_jenkins svn构建_08,第8张

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_服务器_09,第9张

点保存,继续配置。

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_jenkins svn构建_10,第10张

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_tomcat_11,第11张

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_Jenkins_12,第12张

点保存,继续配置。

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_Jenkins_13,第13张

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_tomcat_14,第14张

安装插件时受到网络状况的影响有可能会失败,不要紧,多试几次,直到成功。

(3)Jenkins配置项目

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_tomcat_15,第15张

 

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_jenkins svn构建_16,第16张

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_tomcat_17,第17张

 

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_tomcat_18,第18张

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_tomcat_19,第19张

指定SVN的账户密码,设置完,一定要点add,再选一次。配置好的效果,如下图:

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_服务器_20,第20张

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_Jenkins_21,第21张

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_服务器_22,第22张

注意:此时Jenkins 的工作区中还没有代码,需要执行一次构建操作之后Jenkins 才会下载代码。

点击立即构建 构建完毕之后进入 工作空间 查看 也可以去在 控制台 中查看 

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_服务器_23,第23张

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_tomcat_24,第24张

然后 打开 “工作空间”   可以看见svn上面的代码就存在了我们的jenkins中 

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_jenkins svn构建_25,第25张

 

下载好代码之后。指定构建操作。

打开刚才的配置选择 构建后操作 这里就需要用到之前的下载的插件

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_服务器_26,第26张

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_tomcat_27,第27张

说明:
1)WAR/EAR files:war包以项目根目录为基准的相对路径;
2)Context path:浏览器访问项目时使用的项目名;
3)Containers:选择与服务器想符合的Tomcat;

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_tomcat_28,第28张

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_服务器_29,第29张

这里的Tomcat指项目运行的Tomcat,用户名密码之前配置过!!!

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_tomcat_30,第30张

(4)配置触发钩子程序,自动构建【若需要手动构建,取消这一步的设置即可】

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_Jenkins_31,第31张

远程触发的基本原理是:SVN服务器给Jenkins项目特定的URL地址发送请求,但必须以请求参数的形式携带一个特定值,这个特定值就是这里的“身份验证令牌”。
身份验证令牌是:APPLE_TOKEN
那么最终的访问地址就是:http://IP:PORT/jenkins/job/ProjiectName/build?token=APPLE_TOKEN


上面配置的意思就是:只要任何一个程序 访问这个地址,就会触发 jenkins 自动构建。

作为开发人员,我们需要的功能是 提交SVN之后,触发 jenkins 自动构建,那么访问这个地址的程序就是我们的SVN。【发起请求】

以 CentOS为例:Linux的curl命令用来发送HTTP请求。那就需要在SVN的配置文件里,将发送请求的命令配置进去。

(5)编辑SVN 版本库中的钩子程序

在svn的目录下的 项目目录中,里面有一个hooks文件夹,这个文件夹里面有SVN各种配置的模板。

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_Jenkins_32,第32张

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_tomcat_33,第33张

1)钩子程序由post-commit.tmpl复制得到,这里注意不要使用任何扩展名。如果按照我们习惯的使用.sh扩展名则钩子程序无法正常工作。

cp post-commit.tmpl post-commit

vim post-commit

在最后一行写入:【其中红色字部分换成你自己的配置】

curl -X post -v -u username:password http://ip:port/jenkins/job/ProjectName/build?token=yourToken

注释掉最下面一行【否则SVN报错】

#mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf

2)记得使用chmod 命令设置为可执行权限

chmod +x post-commit

 

四、测试

(1)在Eclipse中修改并提交svn,在页面上查看显示内容变化.

(2)如果发生Jenkins服务器从SVN服务器下载代码不是最新版的情况,那么就在SVN服务器的URL地址后面加上@HEAD强制要求下载最新版。

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_jenkins svn构建_34,第34张

 

---------------------------------------------------------------------------------------------------------------

以上构建方法适用于 项目 不需要发布到 ROOT 目录的情况。对于需要把项目发布到 ROOT 目录的情况就不适用了(具体原因不知,应该是Tomcat对ROOT目录的保护机制)。即使在“构建后操作”这一步把 Context path 设置为 ROOT 也不行(除非每一次发布之前手动删除ROOT目录)。这时就需要把“构建”和“构建后操作”这两步通过脚本来实现。

1、首先设置  项目路径 和 Tomcat 路径

vim /etc/profile

#jenkins
export PROJ_PATH=/root/.jenkins/workspace
export TOMCAT_PATH=/usr/java/apache-tomcat-8.0.53

2、编写脚本文件:  cd /root/.jenkins  >>> touch deploy.sh >>>  vim deploy.sh

写入如下代码: *ProjectName*  部分换成你自己的项目名

cd $PROJ_PATH/*ProjectName*
mvn clean install
 
#停tomcat
sh shutdown.sh
 
# 删除原有工程
rm -rf $TOMCAT_PATH/webapps/ROOT
rm -f $TOMCAT_PATH/webapps/ROOT.war
rm -f $TOMCAT_PATH/webapps/*ProjectName*.war
 
# 复制新的工程到tomcat上
cp $PROJ_PATH/*ProjectName*/target/*ProjectName*.war $TOMCAT_PATH/webapps/
 
cd $TOMCAT_PATH/webapps/
mv *ProjectName*.war ROOT.war
 
# 启动Tomcat
sh startup.sh

运行脚本写好之后一定记得添加执行权限     chmod +x

3、登录 jenkins 设置

3.1、“构建”由原来的 “调用顶层MAVEN目标” 改为 “执行Shell”

并填入以下脚本:

#当jenkins进程结束后新开的tomcat进程不被杀死
BUILD_ID=DONTKILLME
#加载变量
. /etc/profile
#执行写好的自动化部署脚本
sh /root/.jenkins/deploy.sh

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_服务器_35,第35张

3.2、删除(清空)之前设置好的 “构建后操作” 

jenkins svn构建 jenkins集成svn,jenkins svn构建 jenkins集成svn_tomcat_36,第36张

 

4、设置 Tomcat 脚本权限

这里有一个坑,一定要给tomcat下所有sh文件加上x权限才能启动tomcat成功,

具体为在tomcat目录上层执行chmod a+x  -R tomcat目录

或者在tomcat的bin目录下执行chmod +x *.sh

 

 


https://www.xamrdz.com/lan/5bw1960313.html

相关文章: