Jenkins

Jenkins是一个开源的持续集成、交付、部署的基于web界面的一个平台,主要用于持续、自动构建/软件测试项目,Jenkins是使用java语言编写的,通常与版本控制工具结合使用,比如:Git,说到持续集成、交付、部署,这些是什么意思呢?
持续集成(CI): 在一个研发团队中,对于一个项目,会分为多个部分交于不同人去完成,持续集成的意思就是,频繁的将代码集成到主干,将个人研发的部分向软件整体部分交付,频繁进行即成以便快速发现错误。防止分支严重偏离主干,如果不是经常集成,主干又不断更新,那么就会导致后面的集成难度加大,甚至难以集成。他的核心措施是,代码在集成到主干之前,必须经过测试,如果又一个测试用例失败,代码就不能集成到主干。
持续交付(CD): 持续交付是持续集成的下一步,到了这一步,对于一个项目,不管你再怎么更新,他都必须是随时可以交付的,它指的是频繁的将软件的新版本交付给质量团队或者用户,以供评审,如果评审通过,软件就会进入生产阶段,这个就跟一个游戏的测试一样,通常要经过很多次测试,内测、公测后才会正式上线。
持续部署(CD): 持续部署是持续交付的下一步,他是指在代码通过评审后,自动部署到生产环境,持续部署的目标是,代码在任何时候都是可以部署的,可以进入生产环境,持续部署的前提是能自动化完成测试、构建、部署等阶段。

安装

1、安装环境

最低配置:不少于256内存,不低于1G磁盘,java环境(安装JDK,版本>8),要求不是很高

2、安装jdk与jenkins

yum install jdk-8u121-linux-x64.rpm jenkins-2.182-1.1.noarch.rpm -y

3、启动jenkins

/etc/init.d/jenkins start

4、使用netstat -antlp查看jenkins启动的端口,应该是8080,如果你这个端口没有被占用的话

5、使用本机ip与8080端口进入jenkins-web界面

Jenkins 部署dubbo_持续交付


可以看到要输入管理员密码,上面也给了提示,在本地查看提示的文件内容,得到管理员密码

Jenkins 部署dubbo_持续交付_02


使用密码登录

Jenkins 部署dubbo_xml_03


难顶,怎么使这个界面,说是处与离线状态,我可以连接互联网啊,不是应该出现安装插件的界面吗,百度了一下,原来是在插件管理器中检测到了更新站点,使用了https,将他改成http就行了,我们先找到更新文件路径:

find / -name hudson.model.UpdateCenter.xml

Jenkins 部署dubbo_持续交付_04


然后编辑该文件将https改为http

Jenkins 部署dubbo_xml_05


重启一下服务重新进入

Jenkins 部署dubbo_持续交付_06


nice,进来了,我们选择左边的推荐安装,等待安装完成

Jenkins 部署dubbo_持续交付_07


插件安装完成后会进入创建用户的界面,我们自己设置一个admin用户和密码

Jenkins 部署dubbo_Jenkins 部署dubbo_08


点击继续后会进入确认界面,没什么问题继续就行

Jenkins 部署dubbo_xml_09


Jenkins 部署dubbo_Jenkins 部署dubbo_10


Jenkins 部署dubbo_xml_11


如果点击登录后一直是空白页面,这个是因为配置权限不对,我们找到config.xml这个文件,进去修改权限:

vim /var/lib/jenkins/config.xml

<authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthor izationStrategy">(登录用户可以做任何事)替换为:<authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>(所有用户可以做任何事)

Jenkins 部署dubbo_Jenkins 部署dubbo_12


进去后,我们建立一个新项目testjob,点击create new job,选择自由风格的代码

Jenkins 部署dubbo_持续交付_13


点击ok后再进入的界面选择第二列菜单源码管理部分,选择Git

Jenkins 部署dubbo_Jenkins 部署dubbo_14


点击URL下的Add,选择jenkins进入

Jenkins 部署dubbo_持续交付_15


查看SSH私钥,将内容全部复制到jenkins

Jenkins 部署dubbo_持续交付_16


将私钥内容全部复制到jenkins

Jenkins 部署dubbo_持续集成_17


添加URL,git仓库的地址

Jenkins 部署dubbo_持续交付_18


Jenkins 部署dubbo_xml_19


下面我们在本地仓库中gitdemo中,向远程仓库推送信息

Jenkins 部署dubbo_持续集成_20


在jenkins控制台可以看到git各种操作的信息

Jenkins 部署dubbo_持续交付_21