使用 java 语言开发的自动化发布工具。在中大型金融等企业中普遍使用 Jenkins 来作为项目发布工具。 Jenkins 官方提供的插件使 Jenkins 更为强大。Jenkins 是一个自动化服务器,目前发展超过 15 年,比较成熟的 CI 工具(也可以 CD)能够实现自动化集成发布。建立好流水线后,期间无需专业运维人员介入,开发人员随时发布部署,任性!。
发展历史
Jenkins 的前身是 Hudson,采用 JAVA 编写的持续集成开源工具。
Hudson 由 Sun 公司在 2004 年启动,第一个版本于 2005 年在 java.net 发布。
2007 年开始 Hudson 逐渐取代 CruiseControl 和其他的开源构建工具的江湖地位。
在 2008 年的 JavaOne 大会上在开发者解决方案中获得杜克选择大奖(Duke’s Choice Award)。
在 2010 年 11 月期间,因为 Oracle 对 Sun 的收购带来了 Hudson 的所有权问题。主要的项目贡献者和 Oracle 之间, 尽管达成了很多协议,但有个关键问题就是商标名称“Hudson”。
甲骨文在 2010 年 12 月声明拥有该名称并申请商标的权利。因此,2011 年 1 月 11 日,有人要求投票将项目名称从“Hudson”改为“Jenkins”。
2011 年 1 月 29 日,该建议得到社区投票的批准,创建了 Jenkins 项目。
2011 年 2 月 1 日,甲骨文表示,他们打算继续开发 Hudson,并认为 Jenkins 只是一个分支,而不是重命名。因此,Jenkins 和 Hudson 继续作为两个独立的项目,每个都认为对方是自己的分支。
到 2013 年 12 月,GitHub 上的 Jenkins 拥有 567 个项目成员和约 1,100 个公共仓库,与此相对的 Hudson 有 32 个项目成员和 17 个公共仓库。到现在两者的差异更多,应该说 Jenkins 已经全面超越了 Hudson。此外,大家可能是出于讨厌 Oracle 的情绪,作为 Java 开发者天然地应该支持和使用 Jenkins。
功能特点
开源免费
多平台支持(windows/linux/macos)
主从分布式架构
提供 web 可视化配置管理页面
安装配置简单
插件资源丰富
应用场景
集成 svn/git 客户端实现源代码下载检出
集成 maven/ant/gradle/npm 等构建工具实现源码编译打包单元测试
集成 sonarqube 对源代码进行质量检查(坏味道、复杂度、新增 bug 等)
集成 SaltStack/Ansible 实现自动化部署发布
集成 Jmeter/Soar/Kubernetes/.....
可以自定义插件或者脚本通过 jenkins 传参运行
可以说 Jenkins 比较灵活插件资源丰富,日常运维工作都可以自动化。
web 页面展示
管理页面: 系统管理页面包含系统管理、全局安全管理、全局工具配置、节点管理、授权管理、插件管理、系统备份管理、日志监控管理
webpage
项目管理页面: 项目、项目状态、项目视图、构建队列等信息
webpage
构建输出页面: 用于查看项目的构建详情,能够看到项目的构建过程及详细日志。
webpage
1.2 Jenkins 安装部署