阅读(3192) (0)

Jenkins 2权威指南(博文视点出品) [Jenkins 2: Up and Running]

2021-05-18 20:07:45 更新

Jenkins 2权威指南

[美] 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

点此购买