原创NOBDevOpsJen

中科白癜风公益活动 http://disease.39.net/bjzkbdfyy/171027/5796518.html

第3天-Jenkins详解

一、Jenkins介绍

简单历史

Jenkins的前身是Hudson,采用JAVA编写的持续集成开源工具。Hudson由Sun公司在年启动,第一个版本于年在java.net发布。年开始Hudson逐渐取代CruiseControl和其他的开源构建工具的江湖地位。在年的JavaOne大会上在开发者解决方案中获得杜克选择大奖(DukesChoiceAward)。

在年11月期间,因为Oracle对Sun的收购带来了Hudson的所有权问题。主要的项目贡献者和Oracle之间,尽管达成了很多协议,但有个关键问题就是商标名称“Hudson”。甲骨文在年12月声明拥有该名称并申请商标的权利。因此,年1月11日,有人要求投票将项目名称从“Hudson”改为“Jenkins”。年1月29日,该建议得到社区投票的批准,创建了Jenkins项目。

年2月1日,甲骨文表示,他们打算继续开发Hudson,并认为Jenkins只是一个分支,而不是重命名。因此,Jenkins和Hudson继续作为两个独立的项目,每个都认为对方是自己的分支。到年12月,GitHub上的Jenkins拥有个项目成员和约1,个公共仓库,与此相对的Hudson有32个项目成员和17个公共仓库。到现在两者的差异更多,应该说Jenkins已经全面超越了Hudson。此外,大家可能是出于讨厌Oracle的情绪,作为Java开发者天然地应该支持和使用Jenkins。

后面Hudson被Oracle捐给了Eclipse基金会,所以右边这老头有个Eclipse的光环加持。

为什么Jenkins更受大家欢迎。:由开发者主导、面向开发者

首先,曾经是Hudson开发人员中的99%都转向了Jenkins的开发,其中包括最初的创建者川口清子(KohsukeKawaguchi)。他独自写了大部分代码,并且他的经验是Hudson各种高级特性的关键来源。Jenkins的开发社区更活跃。所以对很多人而言,从血统上看Hudson是后娘养的,Jenkins才是亲生的!

治理和社区

Jenkins开发社区的管理是很开放的。有一个独立的董事会,其中包括来自Yahoo!,CloudBees,Cloudera和Apture等多家公司的长期以来的Hudson开发人员。每次会议后,他们定期举行治理会议并发表意见,征询公众意见。他们还将所有代码都捐赠给公共利益软件组织(SPI),以确保社区持续开放。

稳定性

分手后,针对Jenkins的贡献不断持续增加,Jenkins制定了新的长期支持发布线。社区定大约每三个月发布一次稳定版本的补丁。

插件的平台

Jenkins支持超过0个插件。凭借多样而强大的插件Jenkins成了整个开发生命周期中的一个中心点。

到了年,两者的发展差异更大了。Jenkins应该说是CI工具中公认的老大,而Hudson不仅不能与Jenkins比,跟其他CI工具比也没什么优势,完全沉沦了。

slant网站对一系列CI工具做了一次对比,其中Jenkins和Hudson的情况如下。

1、基本面问题

工具

Jenkins

Hudson

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

-------

------

最好的CI工具

1

22

最好的JAVACI工具

1

7

最好的自托管CI工具

3

4

2、其他支持

工具

Jenkins

Hudson

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

-------

------

对Window支持最好

1

无排名

最好的开源CI工具

1

无排名

对BitBucket的支持

2

无排名

对移动开发者支持最好的CI

4

无排名

3、更多特征

Jenkins

Hudson

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

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

免费且开源

与Jenkins共享了很多代码,安装还是挺简单的

关键的环境变量可以安全存储

支持多个SCM,包括SVN,Mercurial,Git。集成了GitHub和Bitbucket

高度可配置

资源和教程很多

安装运行简单

分布式的构建也能高效运行

可跨平台部署

很多高质量的插件

得奖无数

庞大的社区

1、Jenkins功能

持续的软件版本发布/测试项目。

监控外部调用执行的工作。

3、Jenkins概念

Jenkins是一个功能强大的应用程序,允许**持续集成和持续交付项目**,无论用的是什么平台。这是一个免费的开源项目,可以处理任何类型的构建或持续集成。集成Jenkins可以用于一些测试和部署技术。Jenkins是一种软件允许持续集成。

4、Jenkins目的

持续、自动地构建/测试软件项目。

监控软件开放流程,快速问题定位及处理,提提高开发效率。

5、Jenkins特性

开源的java语言开发持续集成工具,支持CI,CD。

易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等快速实现安装部署,可方便web界面配置管理。

消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试报告。

分布式构建:支持Jenkins能够让多台计算机一起构建/测试。

文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。

丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven,docker等。

6、产品发布流程

产品设计成型-开发人员开发代码-测试人员测试功能-运维人员发布上线

持续集成(Continuousintegration,简称CI)

持续交付(Continuousdelivery)

持续部署(continuousdeployment)

二、JenkinsCI/CD流程

说明:这张图稍微更形象一点,上线之前先把代码git到版本仓库,然后通过Jenkins将Java项目通过maven去构建,这是在非容器之前,典型的自动化的一个版本上线流程。那它有哪些问题呢?

如:它的测试环境,预生产环境,测试环境。会存在一定的兼容性问题(环境之间会有一定的差异)

说明:它这里有一个dockerharbor的镜像仓库,通常会把你的环境打包为一个镜像,通过镜像的方式来部署。

三、部署Jenkins

IP

主机名

----------

----------

10.10.10.11

jenkins

10.10.10.12

tomcat

10.10.10.13

git/gitlab

1、部署GIT

centos7.x10.10.10.13git服务器#服务器进行如下操作

1.1、安装git

[root

git~]#yuminstall-ygit

创建git用户并设置密码为(为开发人员拉代码时设置的用户)

[root

git~]#useraddgit[root

git~]#passwdgit

1.2、创建仓库

[root

git~]#su-git#切换到git用户下[git

git~]mkdir-prepos/app.git#在git用户家目录下创建一个repos目录,repos目录下创建各个项目的目录[git

git~]cdrepos/app.git/[git

gitapp.git]git--bareinit#初始化仓库,如果不初始化,这仅仅就只是一个目录[git

gitapp.git]ls-a#查看初始化后仓库信息...branchesconfigdescriptionHEADhooksinfoobjectsrefs

配置完仓库后,我们需要找一台机器测试是否能够成功从仓库中拉取代码,或者上传代码到该仓库。

IP:10.10.10.12,web服务器进行测试

1.3、安装git客户端

拉取代码

[root

tomcat~]#yuminstall-ygit#首先还是安装git[root

tomcat~]#mkdir-ptest[root

tomcat~]#cdtest[root

tomcattest]#gitclonegit

10.10.10.13:/home/git/repos/app.git#测试clone远端git仓库[root

tomcattest]#lsapp

1.4、push测试

[root

tomcatapp]#touchindex.html[root

tomcatapp]#gitadd.[root

tomcatapp]#git

转载请注明:http://www.sonphie.com/jibzd/14480.html

  • 上一篇文章:
  • 下一篇文章: 没有了
  • 网站简介| 发布优势| 服务条款| 隐私保护| 广告合作| 网站地图| 版权申明

    当前时间: