我们都知道在公司里,一个软件的开发到发布,需要经历一系列的流程,而且目前也已经形成了一套标准流程。一个大的功能模块的开发,往往是几个人一起进行的,而每个人写完一些小功能的代码后,一般都需要将代码集成到主干,或者说将代码都合并在一起。这种将代码集成到主干的操作,可能一天需要进行很多次,而且是多人进行。这样的一个环节就是持续集成,在这个开发到发布的流程中最重要的组成部分就是持续集成。
开发到发布的流程大致如下:
产品设计成型 -> 开发人员开发代码 -> 测试人员测试功能 -> 运维人员发布上线
其中的几个概念:
持续集成 (Continuous integration,简称CI),频繁地(一天多次)将代码集成到主干。
持续交付(Continuous delivery),频繁地(一天多次)将集成的代码交付给测试人员测试。
持续部署(continuous deployment),频繁地(一天多次)将测试好的代码交给运维人员部署。
示意图:

关于持续集成的详细可参考以下文章:
<a href="http://www.ruanyifeng.com/blog/2015/09/continuous-integration.html">http://www.ruanyifeng.com/blog/2015/09/continuous-integration.html</a>
由于这种频繁地、一天多次的操作,重复性很高,所以我们希望可以自动化的去完成这些重复的环节,提高整个流程的效率。这时我们就需要借助一些工具来完成自动化了,对于小公司来说收费的工具成本太高划不来,所以像Jenkins这样开源的、优秀的工具就流行了起来。
Jenkins是一个用Java编写的开源的持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。在与Oracle发生争执后,项目从Hudson项目复刻。
Jenkins提供了软件开发的持续集成服务。它运行在Servlet容器中(例如Apache Tomcat)。它支持软件配置管理(SCM)工具(包括AccuRev SCM、CVS、Subversion、Git、Perforce、Clearcase和RTC),可以执行基于Apache Ant和Apache Maven的项目,以及任意的Shell脚本和Windows批处理命令。Jenkins的主要开发者是川口耕介。Jenkins是在MIT许可证下发布的自由软件。
可以通过各种手段触发构建。例如提交给版本控制系统时被触发,也可以通过类似Cron的机制调度,也可以在其他的构建已经完成时,还可以通过一个特定的URL进行请求。
Jenkins概要:
Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)基于web界面的平台。
Jenkins是一个工具集,提供了各种各样的插件
比如获取git上最新的代码
比如可以帮你编译源代码
比如可以调用自定义的shell脚本远程执行命令
jenkins官网地址如下:
<a href="https://jenkins.io/">https://jenkins.io</a>
jenkins的官方文档地址如下:
<a href="https://jenkins.io/doc/">https://jenkins.io/doc/</a>
安装jenkins的最低配置: 不少于256M内存,不低于1G磁盘,jdk版本>=8
如果只需要java的运行环境的话,用yum安装个openjdk就可以了,安装命令如下:
yum install -y java-1.8.0-openjdk
下载jenkins的yum源:
安装jenkins.io.key:
yum安装jenkins:
安装完之后启动jenkins服务:
接着就可以在windows上的浏览器里,访问你Linux的8080端口,进行 Jenkins 的安装:
按照以上提示,查询默认的密码:
点击继续后会进行一段时间的初始化,然后就会显示以下界面:
之后就会开始安装插件了:
安装完插件之后,就会进入创建管理员用户的界面:
安装完成:
以上我们已经安装好了jenkins,现在我们先简单了解一下jenkins的一些目录:
1.jenkins的安装目录:
简单介绍几个目录:
jobs目录里存储着我们在jenkins上创建的任务
logs日志目录
nodes在多节点的时候要用到
plugins是jenkins插件的存储目录
secrets密码密钥相关的目录
updates版本更新时要用到的目录
users存储用户信息的目录
workflow-libs工作库
2.jenkins的配置文件:
简单介绍一下jenkins配置文件中一些参数的含义:
3.jenkins的日志文件所在的目录:
<code>[root@server ~]#</code>
<code></code>
<code>本文转自 ZeroOne01 51CTO博客,原文链接:http://blog.51cto.com/zero01/2070594,如需转载请自行联系原作者</code>