jenkins<at>centos6_x86-64
...
[root@pro_jenkins]# yum install -y jenkins
Loaded plugins: fastestmirror, refresh-packagekit, security
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
Repository contrib is listed more than once in the configuration
Loading mirror speeds from cached hostfile
* base: mirrors.btte.net
* epel: ftp.sjtu.edu.cn
* extras: mirrors.btte.net
* updates: mirrors.btte.net
jenkins | 951 B 00:00
jenkins/primary | 26 kB 00:00
jenkins 237/237
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package jenkins.noarch 0:1.564-1.1 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===========================================================================================================
Package Arch Version Repository Size
===========================================================================================================
Installing:
jenkins noarch 1.564-1.1 jenkins 59 M
Transaction Summary
===========================================================================================================
Install 1 Package(s)
Total download size: 59 M
Installed size: 65 M
Downloading Packages:
jenkins-1.564-1.1.noarch.rpm | 59 MB 01:04
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : jenkins-1.564-1.1.noarch 1/1
warning: /etc/yum.repos.d/jenkins.repo created as /etc/yum.repos.d/jenkins.repo.rpmnew
Verifying : jenkins-1.564-1.1.noarch 1/1
Installed:
jenkins.noarch 0:1.564-1.1
Complete!
===========================================================
http://blog.csdn.net/thestoryoftony/article/details/7684137
http://gdcsy.blog.163.com/blog/static/127343609201412142817337/
什么是持续集成(Continuous Integration)?
这个概念到底是怎么定义,说实话很多不同的版本。这里我就把我理解的什么叫持续集成说下,其实持续集成是为了配合敏捷开发的速度和效率而产生的一个用于编译、测试、发布、部署的工具。为什么叫持续呢?其实就是编码人员提交了源码,那么该工具就可以进行编译,测试等一系列运作。怎么能够让编码人员很快的知道编码的异常。
首先我们来看看这个环境是怎么运作的吧! 编码人员将代码提交到SVN,那么Jenkins就监控到SVN有更新,那么Jenkins就去SVN取出更新的源码。取出后就交给Maven去编译、测试、发布等操作。

下面我们来看看具体的安装布署吧!
Jenkins 是一个可扩展的持续集成引擎,Hudson非常易于安装和配置,简单易用
假设我们目前已经有2个maven项目:entities(JAVA类库),web(web应用,依赖entities)。
一、安装Jenkins:
地址http://mirrors.jenkins-ci.org/下载适合的Jenkins版本 ,我下载的是http://mirrors.jenkins-ci.org/war/1.540/jenkins.war
把下载的war包直接扔到tomcat下,启动tomcat。
Jenkins就安装完毕,是不是很简单啊。

二、 配置Jenkins:
1、打开 http://localhost:8080/jenkins/ ,第一次进入里面没有数据,我们需要创建job,我们这有2个项目,需要创建2个job.
2、点击左上角的new job,在new job页面需要选择job的类型,jenkins支持几种类型,我们选择"构建一个maven2/3项目"

3、选择完job类型后,进会进入详细配置界面,详细配置界面的配置项很多,不过不用怕,大部分使用默认配置就可以了,下面就说说我们需要修改的几个地方:
1): Source Code Management
因为我们使用的SVN,所以这里选择subversion,并在Repository URL中输入我们的SVN地址:
http://localhost/svn/Entites
注:在输入URL后,如果SVN需要验证(jenkins会自动检测是否需要验证),会展URL输入框下方显示需要验证,点击输入验证信息的链接,输入SVN的用户名和密码就可以。在试用的过程中发现如果使用svn自带的服务器,使用svn://方式访问,如果svn需要验证,jenkins支持不论,如果不需要验证就可以,建议还是通过apache http方式来访问svn,这样jenkins支持比较好。

2) : 配置自动构建的计划,假设我们想让项目中每天12点和晚上8点自动构建一次,只需要在Build Triggers中选择 Build periodically,并在Schedule中输入 0 12,20 * * *。
注: Schedule的配置规则是有5个空格隔开的字符组成,从左到右分别代表:分 时 天 月 年。*代表所有,
0 12,20 * * * 表示在任何年任何月的任何天的12和20点的0分 进行构建
3):配置到这里,可能有人发现在Build配置节点,有红色错误信息,提示


4) 保存好所有配置后,我们第1个job就算是完成了。
5) 创建web的job, 这里的配置和上面的配置一样,只需要把svn地址改成:http://localhost/svn/Web
三、手动构建试试
在经过上面的配置后,回到jenkins首页,在首页可以看到刚才添加的2个job,如下图(略):
点击某1个job后后面的"Schedule a build"图片手动构建,点击完后,会在左边的Build Queue或者Build Executor Status 显示正在构建的任务,在自动构建完后,刷新页面,就可以看到构建结果了,如何某个项目构建失败,点击项目后面的构建数字(从1开始递增)进入项目的"Console Output "可以查看项目构建失败的原因。当然我们也可以配置把构建失败的结果发到我们邮箱。
到目前为止,1个简单的自动构建环境就搭建好了,很简单吧。
四、自动部署
看完上面发现jenkins配置真的很简单,几分钟自动构建环境就出来了,但环境搭建好后发现1个问题,现在是能自动构建了,但是构建好的web.war都还是在jenkins目录下,并没有发布到tomcat中,还需要手动copy过去?
是个问题,不过别急,要达到自动部署的目的,需要安装1个jenkins的部署插件,选择“系统管理”菜单的“管理插件”:

选择“可选插件”,找到Deploy Plugin 1.9插件,选择它


hudon默认的目录在:C:\Documents and Settings\用户名\.Jenkins\
workspace目录:C:\Documents and Settings\用户名\.Jenkins\jobs\web\workspace\
最终产生的war在:C:\Documents and Settings\用户名\.Jenkins\jobs\web\workspace\Web\target\web.war
保存配置再重新构建一次,打开tomcat的webapps目录,发现web.war终于过来了,大功告成。
========================
http://my.oschina.net/u/1377774/blog/177433
http://blog.csdn.net/duaiwuyan/article/details/18706445
Jenkins
Jenkins安装以及集成使用
一、jenkins的安装
1. 从jenkins官网下载最新的war包,放入本地tomcat/webapps文件夹下,启动tomcat,输入网址localhost:8080/Jenkins,进入jenkins访问。具体tomcat的操作跟上一章一致。
二、Jenkins的集成
1. Jenkins将会与jira进行集成,需要装1个插件。在首页点击左侧的系统管理
2. 点击管理插件
3. 点击高级->选择插件->上传。此插件用于jira集成插件的下载点此
4. 添加动态部署的插件,该插件会将打好的war包动态放到对应的web服务器目录下,并发布。在可选插件搜索deploy,安装Deploy to container Plugin插件。
三、jenkins的使用
1. 新建一个任务,回到首页点击左上角的新job
2. 选择构建一个maven项目,并命名为dd
3. 这时候需要先把上一章新建的web项目提交到svn服务器上去。,打开eclipse,右键web项目->Team->share Project
继续操作选择SVN->next
继续,我这里已经配置好了SVN.配置svn很简单,这里就不赘述了。
这里我在SVN服务器上新建了一个zytest的文件夹用于存放测试项目的。所以我在这里将zhangyu_web放在zytest文件夹下面。
点击finish,然后等待弹出调整视窗的页面,点击yes。进入svn视图之后点击左侧的zhangyu_web进行查看,然后右键zhangyu_web,进行提交。
查看eclipse中的svn资源库,具体在eclipse菜单栏点击windows->show view->other,然后搜索svn。出现zhangyu_web文件夹表示提交成功。
4. 继续jenkins的集成,新建job之后,有如下几个地方需要填写。在源码管理选择subversion,然后配置好svn上项目的地址
选择构建触发器,并输入时间第一个是分钟,第二个位置是小时,目前设定的是中午12点与晚上20点自动构建。后三位分别是日月年。*表示任意,该句的意思就是每天中午12点,晚上20点自动构建该项目。
在build这块使用默认的pom文件,也就是项目中自带的pom文件,post steps是指在构建该项目完成时,根据其构建的状态是否继续运行。
在构建后的操作选择配置war包路径以及tomcat的相关参数
Tomcat的账号密码,在tomcat/conf中一个配置文件中添加,不会的自己百度。
5. 返回jenkins首页,点击右侧立即构建。注意因为maven环境搭建测试时将zhangyu_web.war拷贝到了tomcat中,为了不影响jenkins的结果测试,先将tomcat中的zhangyu_web.war包删除。然后再执行jenkins的构建。
注意左下角正在执行。
成功之后刷新首页,发现构建成功的状态。
这时候浏览器访问localhost:8080/zhangyu_web。
这时候表示我们的jenkins能从svn上下载项目,并根据maven的配置进行构建,并动态发布到web服务器上。
========================================================
http://blog.csdn.net/fenglailea/article/details/26014685
官方文档:http://pkg.jenkins-ci.org/redhat/
1.先安装JAVA
http://blog.csdn.net/fenglailea/article/details/26006647
2.安装jenkins
- sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
- sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
- yum install jenkins
3.设置jenkins 端口和用户
- sudo vi /etc/sysconfig/jenkins
4.安装目录和日志
- /usr/lib/jenkins #安装目录
- /var/log/jenkins #日志目录
5.jenkins启动文件
- sudo /sbin/service jenkins start
http://hi.baidu.com/cbw_tscs/item/99eb38e8ad62d4a9c00d7549
CentOS上Jenkins安装记录
1. 添加Jenkins的源(repository):
$ sudo wget -O /etc/yum.repos.d/jenkins.repo http://jenkins-ci.org/redhat/jenkins.repo $ sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
2. 安装/检查JDK:
$ java --version
$ sudo yum install java-1.6.0-openjdk
3. 安装Jenkins:
$ sudo yum install jenkins
安装完成后,有如下相关目录:
(3.1)/usr/lib/jenkins/:jenkins安装目录,WAR包会放在这里。
$ cd /usr/lib/jenkins$ ll -rw-r--r-- 1 root root 52891723 Feb 27 00:13 jenkins.war
(3.2) /etc/sysconfig/jenkins:jenkins配置文件,“端口”,“JENKINS_HOME”等都可以在这里配置。内容如下:
## Path: Development/Jenkins ## Description: Configuration for the Jenkins continuous build server ## Type: string ## Default: "/var/lib/jenkins"## ServiceRestart: jenkins # # Directory where Jenkins store its configuration and working # files (checkouts, build reports, artifacts, ...). #JENKINS_HOME="/var/lib/jenkins"## Type: string ## Default: ""## ServiceRestart: jenkins # # Java executable to run Jenkins # When left empty, we'll try to find the suitable Java. # JENKINS_JAVA_CMD=""## Type: string ## Default: "jenkins"## ServiceRestart: jenkins # # Unix user account that runs the Jenkins daemon # Be careful when you change this, as you need to update # permissions of $JENKINS_HOME and /var/log/jenkins. #JENKINS_USER="jenkins"## Type: string ## Default: "-Djava.awt.headless=true"## ServiceRestart: jenkins # # Options to pass to java when running Jenkins. #JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true"## Type: integer(0:65535) ## Default: 8080## ServiceRestart: jenkins # # Port Jenkins is listening on. # Set to -1 to disable #JENKINS_PORT="8080"## Type: integer(0:65535) ## Default: 8009## ServiceRestart: jenkins # # Ajp13 Port Jenkins is listening on. # Set to -1 to disable #JENKINS_AJP_PORT="8009"## Type: integer(1:9) ## Default: 5## ServiceRestart: jenkins # # Debug level for logs -- the higher the value, the more verbose. # 5 is INFO. # JENKINS_DEBUG_LEVEL="5"## Type: yesno ## Default: no ## ServiceRestart: jenkins # # Whether to enable access logging or not. # JENKINS_ENABLE_ACCESS_LOG="no"## Type: integer ## Default: 100## ServiceRestart: jenkins # # Maximum number of HTTP worker threads. # JENKINS_HANDLER_MAX="100"## Type: integer ## Default: 20## ServiceRestart: jenkins # # Maximum number of idle HTTP worker threads. # JENKINS_HANDLER_IDLE="20"## Type: string ## Default: ""## ServiceRestart: jenkins # # Pass arbitrary arguments to Jenkins. # Full option list: java -jar jenkins.war --help # JENKINS_ARGS=""
(3.3)/var/lib/jenkins/:默认的JENKINS_HOME。目录结构如下:
$ cd /var/lib/jenkins/$ ls -lst total 216 4 -rw-r--r-- 1 jenkins jenkins 0 Mar 18 23:59 Fingerprint cleanup.log4 -rw-r--r-- 1 jenkins jenkins 0 Mar 18 18:54 Workspace clean-up.log8 drwxr-xr-x 180 jenkins jenkins 4096 Mar 18 17:04 fingerprints8 -rw-r--r-- 1 jenkins jenkins 1636 Mar 18 16:41 config.xml8 -rw-r--r-- 1 jenkins jenkins 903 Mar 18 16:41 hudson.maven.MavenModuleSet.xml8 -rw-r--r-- 1 jenkins jenkins 1122 Mar 18 16:41 hudson.plugins.sonar.SonarPublisher.xml8 -rw-r--r-- 1 jenkins jenkins 205 Mar 18 16:41 hudson.plugins.sonar.SonarRunnerInstallation.xml8 -rw-r--r-- 1 jenkins jenkins 196 Mar 18 16:41 hudson.scm.CVSSCM.xml8 -rw-r--r-- 1 jenkins jenkins 692 Mar 18 16:41 hudson.scm.SubversionSCM.xml8 -rw-r--r-- 1 jenkins jenkins 145 Mar 18 16:41 hudson.tasks.Ant.xml8 -rw-r--r-- 1 jenkins jenkins 187 Mar 18 16:41 hudson.tasks.Mailer.xml8 -rw-r--r-- 1 jenkins jenkins 330 Mar 18 16:41 hudson.tasks.Maven.xml8 -rw-r--r-- 1 jenkins jenkins 76 Mar 18 16:41 hudson.tasks.Shell.xml8 -rw-r--r-- 1 jenkins jenkins 215 Mar 18 16:41 hudson.triggers.SCMTrigger.xml8 -rw-r--r-- 1 jenkins jenkins 264 Mar 18 16:41 jenkins.model.JenkinsLocationConfiguration.xml8 -rw-r--r-- 1 jenkins jenkins 907 Mar 18 16:29 nodeMonitors.xml8 -rw-r--r-- 1 jenkins jenkins 159 Mar 18 16:29 hudson.model.UpdateCenter.xml8 -rw-r--r-- 1 jenkins jenkins 46 Mar 18 16:29 queue.xml.bak8 drwxr-xr-x 2 jenkins jenkins 4096 Mar 18 16:24 updates4 -rw-r--r-- 1 jenkins jenkins 0 Mar 16 10:27 Connection Activity monitoring to slaves.log8 drwxr-xr-x 6 jenkins jenkins 4096 Mar 13 18:24 workspace8 drwxr-xr-x 13 jenkins jenkins 4096 Mar 13 17:59 jobs8 drwx------ 2 jenkins jenkins 4096 Feb 28 11:16 secrets8 -rw-r--r-- 1 jenkins jenkins 165 Feb 27 13:29 sonar.xml8 drwxr-xr-x 14 jenkins jenkins 4096 Feb 27 13:29 plugins8 -rw------- 1 jenkins jenkins 1679 Feb 27 12:12 identity.key8 drwxr-xr-x 2 jenkins jenkins 4096 Feb 27 12:12 userContent8 -rw-r--r-- 1 jenkins jenkins 64 Feb 27 12:12 secret.key4 -rw-r--r-- 1 jenkins jenkins 0 Feb 27 12:12 secret.key.not-so-secret
(3.4)/var/log/jenkins/jenkins.log:Jenkins日志文件。
4. 启动Jenkins
$ sudo service jenkins start
有可能出现错误:“Starting Jenkins -bash: /usr/bin/java: No such file or directory”。表示找不到Jenkins找不到java。
这时就需要“vi /etc/init.d/jenkins”,把java路径加上:
64 # Search usable Java. We do this because various reports indicated
65 # that /usr/bin/java may not always point to Java 1.5
66 # see http://www.nabble.com/guinea-pigs-wanted-----Hudson-RPM-for-RedHat-Linux-td25673707.html
67 for candidate in /etc/alternatives/java /usr/lib/jvm/java-1.6.0/bin/java /usr/lib/jvm/jre-1.6.0/bin/java /usr/lib/jvm/java-1 .5.0/bin/java /usr/lib/jvm/jre-1.5.0/bin/java /usr/bin/java /usr/j2sdk/bin/java
68 do
69 [ -x "$JENKINS_JAVA_CMD" ] && break
70 JENKINS_JAVA_CMD="$candidate"
71 done
5. 登录Jenkins
如果没有特别配置端口,使用http://<ip address>:8080/登录Jenkins,并进行相关配置(插件安装、权限配置、View/Job创建等等)。