Jenkins是什么?
一款Java平台的开源持续集成(Continuous Integration,CI)引擎。主要用于持续集成,增加开发效率。官网地址: Jenkins官网
如我们当前应用最多的场景就是:一个项目我们边做,但是呢测试也在边调试,而我们不可能每一次提交代码就为测试重新打包一份最新的代码让他们去测试,这时候持续集成就能帮我们解决这个问题,我们可以在jenkins里面去解决这个问题。
当然,我们还可以在jenkins里面设置每当项目仓库改变,jenkins就去拉取最新代码并构建。
持续部署/CI/CD/DevOps
| 持续部署(continuous deployment): 通过自动化的构建、测试和部署循环来快速交付高质量的产品。某种程度上代表了一个开发团队工程化的程度,毕竟快速运转的互联网公司人力成本会高于机器,投资机器优化开发流程化相对也提高了人的效率,让 engineering productivity 最大化。
| 持续集成(Continuous integration):一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。
CI仅仅是一个开发构建过程,都在开发端,是实现敏捷开发的一种方式,研发过程自动化
| 持续交付(Continuous delivery):一种软件工程手法,让软件产品的产出过程在一个短周期内完成,以保证软件可以稳定、持续的保持在随时可以释出的状况。它的目标在于让软件的建置、测试与释出变得更快以及更频繁。这种方式可以减少软件开发的成本与时间,减少风险。
| DevOps : 一种方法论,是一组过程、方法与系统的统称,用于促进应用开发、应用运维和质量保障(QA)部门之间的沟通、协作与整合。
CD跟当前很火的DevOps很容易混淆,但它们是不同的两个概念,这里要简单说明一下:
DevOps的范围更广,涉及多个团队之间的合作(开发、运维、测试、管理部门等),目的是将软件交付的过程自动化。CD(持续交付)只是自动化交付的一种手段,关注点主要在于将不同的过程集中起来,更快、更频繁的执行这些过程。
这里有个误区:
很多公司在实施容器云时实现CI(Continuous Integration, 持续集成),或者CI/CD(Continuous Integration/Continuous Delivery or Deployment, 持续集成/持续交付 or 持续部署)就叫DevOps。我觉得这只是实现DevOps的一部分,但不等于DevOps。
但CI/CD依然没有解决开发、运维、质量保证部门之间的协作和整合。职责依然没有划分清楚,不足以支撑企业生产环境部署要求。
安装
网上资料一大把,这些省略不赘述
Tips: 一般安装在CentOS系统上,可以使用yum方式安装,简单方便 如 yum -y install jenkins 可能存在yum源没有jenkins安装包,可自行搜索添加可用yum源。
后面主要以yum安装方式来介绍jenkins相关的内容
访问方式
在浏览器中输入 http://服务器IP地址:8080
默认端口修改有几种方式,根据你安装jenkins方式来选择:
- | java命令启动 java -jar jenkins.war –httpPort=9090
- | tomcat启动 将jenkins.war放到webapps,修改tomcatserver.xml内的端口即可
- | yum安装方式启动 编辑/etc/sysconfig/jenkins,找到JENKINS_PORT配置项,进行修改
修改成功并重启服务后,http://服务器IP地址:修改后端口 即可访问
Tips: 修改完端口后,均需要重启服务,yum方式安装的,启动命令:/etc/init.d/jenkins start CentOS7的启动命令有点不一样 systemctl start jenkins
首次安装成功成功看到的界面可能如下:
先科普下一些jenkins中常用的专业词汇
Jenkins专业词汇
| Artifact - 在Build或Pipeline 运行期间生成的不可变文件,该文件归档到Jenkins Master上以供用户随后检索
| Build - 项目单次执行的结果
| Item - 对应于:Folder, Pipeline, or Project
| Job - 一个不推荐的术语,与项目同义
| Node - 节点,作为Jenkins环境的一部分并能够执行Pipeline或项目的机器
| Project - 用户配置的Jenkins应该执行的工作描述,如构建软件等
| Plugin - Jenkins功能扩展
| Workspace - 工作空间
专业词汇还有很多,暂且列出这些,下面安装Jenkins界面逐一给大家介绍
先来看张图,这是目前我们测试团队在用的Jenkins
先介绍下系统管理相关内容
系统管理
主要介绍系统管理中系统设置、全局安全配置、全局工具配置、管理节点等功能
Tips:系统设置里设置的内容存储在config.xml文件(大概解读下这个xml文件)
系统设置
- 从系统管理->系统设置进入设置页面
- 系统设置中的几个常规配置项:
- 执行者数量:设置可同时执行的job数,当执行job数达到该值时,其他job将处于等待状态
- 生成前等待时间:构建开始前的等待时间,避免代码未提交完整,导致构建失败
- Jenkins UR
- 执行者数量:设置可同时执行的job数,当执行job数达到该值时,其他job将处于等待状态