Jenkins 2权威指南(博文视点出品) [Jenkins 2: Up and Running]
[美] Brent Laster(布伦特·莱斯特) 著,郝树伟,石雪峰,雷涛,李华强 译
- 出版社: 电子工业出版社
- ISBN:9787121357633
- 版次:1
- 商品编码:12575090
- 品牌:博文视点
- 包装:平装
- 外文名称:Jenkins 2: Up and Running
- 开本:16开
- 出版时间:2019-04-01
- 用纸:胶版纸
- 页数:564
- 字数:752400
- 正文语种:中文
编辑推荐
适读人群 :适合想要学习Jenkins并且想利用其新技术来改造老旧流水线或者构建现代的自动化持续交付环境的读者
1 Jenkins创始人Kohsuke kawaguchi,DevOps时代社区联合创始人萧田国、景韵倾情作序,原书作者Brent Laster专门为中文版作序,业内专家Jeff Liu、徐奇琛、杨振涛等联袂力荐。
2 这是一本实用的Jenkins书籍,通过阅读本书可以学到如何利用Jenkins 2的新特性来定义流水线即代码、集成其他关键技术,以及创建自动化的、可靠的流水线,以便简化和加速DevOps环境的建设。
本书包含的内容。
- 使用Jenkins通过代码创建持续交付流水线
- 理解如何迁移现有的任务和流水线
- 驾驭一些控制访问和安全性的优秀实践
- 领会流水线共享库的结构、编码以及用法
- 学会何时使用声明式语法和脚本式语法
- 探索Jenkins中新的和已有的项目类型
- 掌握新的Blue Ocean图形界面
- 在流水线中利用底层的操作系统
- 集成分析工具、制品管理和容器
内容简介
设计、实现并且执行具有一定灵活性、可控性以及易于维护性的持续交付流水线,对于以前版本的Jenkins来说是不可能实现的。通过这本实用的书籍,构建管理人员、开发人员、测试人员以及其他专业人员将会学到如何利用Jenkins 2的新特性来定义流水线即代码、集成其他关键技术,以及创建自动化的、可靠的流水线,以便简化和加速DevOps环境的建设。作者Brent Laster向你展示了Jenkins 2与这个流行的开源自动化平台基于Web的传统版本有着很大的不同。
作者简介
Brent Laster是一位全球培训师、作家及开源技术的演讲者,也是一家科技公司的高级 研发经理。他投身软件行业已经超过25年,负责过各种技术和管理岗位。除了本书,他还撰写了 Professional Git(Wiley),一本适用于Git初学者和有经验人士的易于使用的综合性指南手册,以及 Continuous Integration vs. Continuous Delivery vs. Continuous Deployment(O’Reilly),一本帮助初学者理解这几个概念区别的指南。你能够经常看到Brent主持一些行业会议的工作坊以及举办Safari上的一些在线培训课程。 Brent总是尽力花时间学习和开发一些技术与领导力技能,然后分享给别人。他相信无论主题或者技术是什么,没有什么能替代在提供给别人知识达成目标的过程中所产生的灵感和潜能。你可以通过 LinkedIn 或 Twitter 的 @BrentCLaster 联系 Brent。
郝树伟,
《Jenkins**指南》首位译者,阿里云高级研发工程师,主要负责开源集成和DevOps相关产品的研发,在CI/CD领域有丰富经验,在Jenkins开源社区与相关书籍翻译、汉化方面有较多贡献和经验。
石雪峰,
Jenkins全球推广大使、Certified Jenkins Engineer、Jenkins中文社区核心成员、Jenkins的狂热爱好者。目前就职于京东商城前台工程效率团队,负责公司级持续交付和DevOps平台体系建设。
雷涛,
Jenkins全球推广大使、Certified Jenkins Engineer、DevOps标准核心编写专家。目前就职于百度工程效率部,曾先后就职于新浪网、摩托罗拉、诺基亚、爱立信、乐视致新等国内外知名企业,专注于互联网、电信、金融、无人驾驶汽车等行业的软件工程效率提升,DevOps解决方案,持续交付,ASPICE/ISO 26262研发过程落地等领域。
李华强,
乐融致新高级配置经理,软件配置管理(SCM)领域的一名老兵,先后就职于北电网络、爱立信、飞维美地、乐视、乐融等多家企业,从事与SCM、DevOps相关的工作。Jenkins的忠实粉丝、**实践的推广者,Jenkins官方Certified Jenkins Engineer(CJE)和Certified CloudBees Jenkins Platform Engineer(CCJE)认证者。
精彩书评
In the last decade working in the valley, I have the opportunities to see Jenkins grow its popularity without a sign of slowing down. From internet service providers to financial institutions, from young startups to long-time traditional corporations, Jenkins has been the brand name for operational agility that speaks on its own. However, it’ s also often to see companies adopted Jenkins fail to deliver CI/CD. The Jenkins 2: Up & Running book has done a great job in delivering the value of Jenkins by focusing on how to build pipeline from user’s perspective and illustrating how to get more out of the platform. It provides the guidance how to effectively use Jenkins to achieve a truly autonomous ecosystem. ——Jeff Liu CEO, DAOps Foundation,Google DevOps Expert Jenkins是近年来一直炙手可热的开源项目,也是各大公司搭建部署体系、规划持续交付的必经之路。软件行业高速发展、互联网产品不断迭代,Jenkins自身也随之变化、扩展、精进。《Jenkin 2**指南》一书会指引大家快速习得全新的技能,帮助企业持续演进和突破CI/CD的能力。 ——徐奇琛 京东前台技术服务提升部负责人 作为持续集成领域著名的开源项目,Jenkins近年来随着Cloud Native等技术的发展变得愈加活跃,并快速进化到了Jenkins 2时代。Jenkins 2不只是简单的版本升级,而是通过流水线等特性带来了一整套CI/CD解决方案,成长为真正的软件交付流水线工作台,也成为每一位专业的软件工程师都需要掌握的入门技能! 本书的翻译非常及时,为国内的广大开发人员提供了**的学习和参考资料。本书在全面介绍Jenkins 2的同时,既能让新手快速入门,也能让经验丰富的工程师及时更新自己的知识和技能,可以说为国内的互联网及软件产业带来了软件交付质量和效率的双提升,包括我本人在组织Jenkins中文社区的技术交流工作中也成为其早期受益者。阅读本书不但可以了解和学习如何将已有的任务迁移到新版本上,而且可以学习*新的Jenkins DSL来让流水线也可编程,使其更加灵活、智能和高效,这本书非常值得一读。 ——杨振涛 vivo互联网架构师 这是我力荐的介绍Jenkins新特性的书籍。写一本几乎所有受众都适用的书真是一个壮举,而Brent已经圆满地完成了这一任务。 ——Chaim "Tinjaw" Krause Brent Laster在展示Jenkins威力方面做得太棒了,在解析Jenkins基本组件的同时又提供了全面的指导来获取Jenkins 2以外的更多知识。那些有价值的流水线即代码的示例会为实现持续交付添砖加瓦。这些应同属于Jenkins新老用户的工具箱。 ——Brian Dawson DevOps传教士,CloudBees公司
目录
第1章 Jenkins 2简介 1
Jenkins 2是什么 2
Jenkinsfile 3
声明式流水线 5
Blue Ocean界面 6
Jenkins 2的全新任务类型 7
做出转变的原因 10
DevOps理念的转变 10
装配流水线 11
可恢复性 11
可配置性 11
共享工作空间 11
专业知识 12
访问逻辑 12
流水线源管理 12
竞争 12
迎接挑战 13
兼容性 13
流水线兼容性 13
插件兼容性 15
检查兼容性 20
总结 21
第2章 基础知识 23
语法:脚本式流水线和声明式流水线 24
如何选择脚本式语法和声明式语法 25
系统(system):主节点(master)、节点(node)、代理节点(agent)和执行器(executor) 26
主节点 27
节点 27
代理节点 27
执行器 28
创建节点 29
结构:使用Jenkins DSL 31
节点 32
阶段 34
步骤 34
支持环境:开发一个流水线脚本 36
创建一个流水线项目 36
编辑器 38
使用代码片段生成器 39
运行一条流水线 43
回放 49
总结 52
第3章 流水线执行流程 53
触发任务 53
在其他项目构建后构建 54
周期性构建 54
使用GitHub钩子触发器进行GitSCM轮询 57
SCM轮询 57
静默期 58
远程触发构建 58
用户输入 58
输入 59
参数 62
多个输入参数的返回值 68
参数与声明式流水线 69
流程控制选项 74
超时(timeout) 74
重试(retry) 76
睡眠(sleep) 76
等待直到(waitUntil) 76
处理并发 78
使用lock步骤对资源加锁 78
使用milestone来控制并发构建 80
在多分支流水线中限制并发 82
并行地运行任务 82
有条件的执行功能 92
构建后处理 .94
脚本式流水线构建后处理 94
声明式流水线与构建后处理 96
总结 97
第4章 通知与报告 99
通知 99
电子邮件 100
协作服务 110
报告 120
发布HTML报告 120
总结 123
第5章 访问与安全 125
安全加固Jenkins 125
启用安全性 126
其他全局安全配置 129
Jenkins中的凭证 133
凭证范围 134
凭证域 135
凭证提供者 135
凭证存储 136
管理凭证 136
选择凭证提供者 136
选择凭证类型 137
通过提供者指定凭证类型 138
创建和管理凭证 139
上下文链接 141
添加一个新域或者凭证 141
使用新域和凭证 144
高级凭证:基于角色的访问权限 145
基本用途 146
管理角色 147
分配角色 152
角色策略宏 155
在流水线中使用凭证 157
用户名和密码 157
SSH密钥 158
令牌凭证 159
控制脚本安全性 160
脚本检查 160
脚本批准 161
Groovy沙箱 162
Jenkins凭证与Vault配合使用 164
方法 164
安装 165
创建一个策略 165
身份验证 166
在Jenkins中使用Vault 168
总结 171
第6章 扩展你的流水线 173
可信库和不可信库 173
内部库与外部库 174
内部库 174
外部库 176
从代码仓库获取库 178
Modern SCM 178
Legacy SCM 178
在流水线脚本中使用库 179
从源码版本控制中自动下载库 180
加载库到脚本中 180
Jenkins项目中的库范围 182
库结构 183
样本库例程 183
共享库代码的结构 184
使用第三方库 195
直接加载代码 196
从外部SCM加载代码 196
回放外部代码和库 198
深入研究可信与不可信代码 200
总结 203
第7章 声明式流水线 205
动机 206
不直观 206
掌握Groovy 206
其他必需的装配 206
结构 207
代码块 208
部分 208
指令 209
步骤 209
条件 210
构建代码块 210
pipeline 211
agent 212
environment 215
tools 216
options 219
triggers 222
parameters 224
libraries 227
stages 228
post 231
处理非声明式的代码 232
检查你的插件 233
创建一个共享库 233
在pipeline代码块之外放置代码 233
script语句 234
在一个阶段中使用parallel 234
脚本检查与错误报告 235
声明式流水线与Blue Ocean接口 238
总结 238
第8章 理解项目类型 241
通用项目选项 241
基础设置 241
源码管理 247
构建触发器 249
构建环境 256
构建 266
构建后操作 266
项目类型 266
自由风格类型项目 267
Maven项目类型 267
流水线项目类型 270
外部任务项目类型 272
多配置项目类型 275
Ivy项目 280
文件夹 282
多分支流水线项目 287
GitHub组织项目 292
Bitbucket团队/项目 296
总结 299
第9章 Blue Ocean用户界面 301
第一部分:管理已有的流水线 302
主界面 302
项目详情页面 305
运行页面 316
第二部分:使用Blue Ocean编辑器 325
不依赖现有Jenkinsfile创建一个全新的流水线 326
使用编辑器 330
编辑已有的流水线 340
导入和编辑已有的流水线 344
使用非GitHub仓库支持流水线 354
总结 356
第10章 转换 357
通用的准备 358
逻辑和准确性 358
项目类型 358
系统 358
访问 358
全局配置 359
插件 359
共享库 359
将自由风格类型的流水线转换为脚本式流水线 360
源码 364
编译 369
单元测试 373
集成测试 377
迁移流水线接下来的部分 380
从Jenkins流水线项目转换为Jenkinsfile 385
方法 388
最后的步骤 395
从脚本式流水线转换为声明式流水线 397
样本流水线 397
转换 399
完成转换 402
可用于转换的通用指南 403
总结 405
第11章 操作系统环境集成(shell、工作空间、环境和文件) 407
使用shell的步骤 407
sh步骤 408
bat步骤 413
powershell步骤 414
使用环境变量 415
withEnv步骤 416
使用工作空间 418
创建自定义工作空间 418
清理工作空间 420
文件和目录步骤 422
使用文件 422
使用目录 423
使用文件和目录的更多操作 424
总结 425
第12章 集成分析工具 427
SonarQube调查 427
使用个人规则 428
质量门和配置文件 432
扫描程序 434
将SonarQube与Jenkins一起使用 434
全局配置 434
在自由风格类型项目中使用SonarQube 436
在流水线项目中使用SonarQube 436
利用SonarQube分析的结果 437
在Jenkins中集成SonarQube的输出 441
代码覆盖率:与JaCoCo集成 442
关于JaCoCo 442
JaCoCo与流水线集成 443
在Jenkins中集成JaCoCo的输出 445
总结 446
第13章 集成制品管理 447
发布和获取制品 447
安装和全局配置 448
在脚本式流水线中使用Artifactory 449
执行其他任务 454
下载指定文件到指定目录 454
上传指定文件到指定路径 454
设置构建保留策略 455
构建提升 455
声明式流水线集成 455
Artifactory与Jenkins输出集成 456
制品归档和指纹 457
总结 462
第14章 集成容器 465
配置成一个云 465
全局配置 466
使用Docker镜像作为代理节点 469
在流水线中使用云镜像 473
在声明式流水线中动态创建的代理节点 477
Docker流水线全局变量 480
全局变量 480
Docker应用全局变量方法 481
Docker镜像全局变量方法 487
Docker容器全局变量方法 491
通过shell运行Docker 492
总结 493
第15章 其他接口 495
使用命令行接口 496
直接使用SSH接口 496
使用CLI客户端 499
使用Jenkins REST API 501
过滤结果 502
启动构建 504
使用脚本控制台 506
总结 508
第16章 故障处理 509
深入流水线步骤 509
处理序列化错误 512
连续传递风格 513
序列化流水线 513
NotSerializableException 513
处理非序列化错误 514
识别引发错误的脚本行 517
处理流水线异常 518
在声明式流水线中使用非声明式代码 518
未授权代码(脚本和方法授权) 522
不支持的操作 523
系统日志 523
时间戳 525
流水线耐用性设置 526
总结 527
关于作者 529
封面介绍 529
关于译者 530