Jenkins,是从Hudson fork出的一个开发分支,因与Oracle Hudson商标纠纷改名为Jenkins(详见),Jenkins是基于Java开发的一种持续集成工具,用于监控秩序重复的工作,包括:软件版本发布/测试的持续集成、外部调用执行工作的监控等。


一、 准备环境

1、(可选) 卸载已有的open jdk,安装最新版本的java jdk,为后续集成maven服务做准备

(1)rpm -qa | grep jdk

            java-1.6.0-openjdk-1.6.0.0-1.45.1.11.1.el6.i686

(2)yum -y remove java-1.6.0-openjdk-1.6.0.0-1.45.1.11.1.el6.i686

            remove java-1.6.0-openjdk-1.6.0.0-1.45.1.11.1.el6.i686

安装JAVA, 请见 http://qiangsh.blog.51cto.com/3510397/1771748

安装Maven,请见   http://qiangsh.blog.51cto.com/3510397/1771831

2、 Jenkins 安装

(1) sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo

(2) sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key

(3) yum install jenkins 

  使Jenkins能够以服务方式启动

(1)sudo chkconfig jenkins on

(2)sudo service jenkins start/stop/restart

3、启动Jenkins

  输入指令 sudo service jenkins start,如果出现类似如下的报错:

 Starting Jenkins bash: /usr/bin/java: 没有那个文件或目录

或者

 Starting Jenkins Jenkins requires Java7 or later, but you are running 1.5.0 from /usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre

则说明jenkins没有找到java安装目录,若此时已经卸载了openjdk,安装了新版本的全java包,则可以通过修改init.d中配置文件解决,方法如下:

 vi /etc/init.d/jenkins

  找到candidates,修改如下,将你安装的java所在路径写到第一个候选位置(最前面)即可将/usr/bin/java写到最前。

  candidates="

  /usr/bin/java

  /usr/java/jdk1.8.0_131/bin/java

  /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.7.0/bin/java

  /usr/lib/jvm/jre-1.7.0/bin/java

  /usr/lib/jvm/java-1.8.0/bin/java

  /usr/lib/jvm/jre-1.8.0/bin/java

  "

二、 配置Jenkins

1、创建软连接

mkdir -p /home/jenkins/

ln -s /var/lib/jenkins /home/jenkins/.jenkins

2、更改Jenkins的默认目录,用户,端口

vi /etc/sysconfig/jenkins

 JENKINS_HOME="/home/jenkins/.jenkins"

 JENKINS_USER="jenkins",执行用户更改为jenkins用户

 JENKINS_PORT="8080",默认端口8080

3、修改目录的相应权限

sudo chown -R jenkins:jenkins /home/jenkins

sudo chown -R jenkins:jenkins /var/log/jenkins

sudo chown -R jenkins:jenkins /var/lib/jenkins

sudo chown -R jenkins:jenkins /var/cache/jenkins


4、安装部分Jenkins插件

  • 系统管理 --> 管理插件 --> 可选插件;

  • 安装所需要的插件(根据需要自行选择),如 GitBucket Plugin、 FindBugs Plug-in 、Cobertura Plugin 、 Violations Plugin 、Email Extension Plugin等



如果联网失败,请参考:http://blog.csdn.net/qq_28719059/article/details/79071906


3、 Jenkins 验证

在浏览器里,输入网址: http://{jenkins_host}:8080/显示下面界面:

spacer.gifwKioL1c6jaLh5SUaAAM8xBEwh0Y506.png

  安装所需要的插件(根据需要自行选择),如 GitBucket Plugin、 FindBugs Plug-in 、Cobertura Plugin 、 Violations Plugin 、Email Extension Plugin等

三、 配置nginx反向代理

1、在nginx配置目录/usr/local/nginx/conf/vhost/目录下新建配置文件jenkins.conf,配置文件内容如下

server {              listen       80;              server_name jenkins.yourhost.com;              #access_log  /var/log/jenkins.access.log  main;              #error_log   /var/log/jenkins.error.log ;                client_max_body_size 60M;              client_body_buffer_size 512k;              location / {                       port_in_redirect on;                       proxy_pass http://127.0.0.1:8080$request_uri;                       proxy_redirect  off;                       proxy_set_header Host $host:$server_port;                       proxy_set_header X-Real-IP $remote_addr;                       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;                     }            }

2、修改/etc/hosts,在末尾新增一行 :

    127.0.0.1     jenkins.yourhost.com

3、重启nginx,

service nginx restart


四、Jenkins升级

1、定位jenkins.war文件的安装目录

ps aux |grep jenkins

jenkins-temp.png

2、如果是默认安装的话,文件目录应该为:/usr/lib/jenkins

cd /usr/lib/jenkins
mv jenkins.war jenkins.war-bak
wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war

3、重启服务

/etc/init.d/jenkins restart


五、相关插件安装

  1. 插件安装方法为,进入系统管理--->插件管理,在Available的Tab下勾选需要的插件直接安装即可。 一些常用的插件如下。

插件名说明
Git pluginjenkins的git 集成工具,拉取源代码
GitBuckit pluginjenkins的gitbuckit集成工具,拉取源代码(提供gitbucket的webhook配置,使gitbucket可以通过提交代码触发build,webhook地址为http://[jenkins_host]/gitbucket-webhook/, 将其写入项目远程仓库的settings->service hooks 里即可)
Cobertura Plugin显示代码测试覆盖率报表,如java 、python等
Violations Plugin用来展示Python静态代码审查报表,支持pylint、jslint等
Email Extension PluginJenkins自定义邮件插件 。
Junit Plugin用来展示生成的单元测试报表,支持一切单测框架,如junit、nosetests等
Maven Integration pluginmaven项目管理工具。一些maven代码质量管理命令:mvn sonar:sonar(单测结果,覆盖率)、findbugs:findbugs(静态代码检查) 、checkstyles:checkstyles(编写规范,潜在问题)
Description Setter Plugin为每次build设置说明文字。通过正则表达式来匹配log里每行的输出,将符合正则表达式的部分显示在说明中。

Email Extension Plugin 的设置参考

Default Subject: 
        构建通知:$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!
Default Content:
        <hr/>
        (本邮件是程序自动下发的,请勿回复!)<br/><hr/>
        项目名称:$PROJECT_NAME<br/><hr/>
        构建编号:$BUILD_NUMBER<br/><hr/>
        git版本号:${GIT_REVISION}<br/><hr/>
        构建状态:$BUILD_STATUS<br/><hr/>
        触发原因:${CAUSE}<br/><hr/>
        构建日志地址:<a href="${BUILD_URL}console">${BUILD_URL}console</a><br/><hr/>
        构建地址:<a href="$BUILD_URL">$BUILD_URL</a><br/><hr/>
        失败单测:${FAILED_TESTS} <br/><hr/>
        变更集:${JELLY_SCRIPT,template="html"}<br/>
         <hr/>