Jenkins2.x实践指南

Jenkins2.x实践指南

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

软件工程生产力独到见解,Jenkins pipeline入门实践,持续集成与交付,ChatOps自动化运维。

内容简介

本书首先介绍笔者对软件工程生产力的独到见解。其次通过一个Hello world带领初学者入门Jenkins pipeline。接着详细介绍Jenkins pipeline的语法,以及在Jenkins pipeline中如何实现持续集成、持续交付中各个阶段,包括构建、测试、制品管理、部署等;在发现现有pipeline的步骤不能满足需求时,扩展Jenkins pipeline多种方式。本书第17章介绍了Jenkins如何整合多个第三方系统,以实现ChatOps及自动化运维。为避免读者“不知从哪下手”的情况,本书通过一个简单的案例介绍从无到有的设计pipeline。

章节目录

封面

作者简介

版权页

前言

目录

1 关于软件工程生产力

1.1 从另一个角度看“提高软件工程生产力”

1.1.1 从劳动力要素考虑提高软件工程生产力

1.1.2 从劳动对象要素考虑提高软件工程生产力

1.1.3 从生产工具要素考虑提高软件工程生产力

1.1.4 生产力三要素的意义

1.2 Jenkins介绍

1.3 Jenkins与DevOps

1.4 本章小结

2 pipeline入门

2.1 pipeline是什么

2.2 Jenkinsfile又是什么

2.3 pipeline语法的选择

2.4 创建第一个pipeline

2.5 从版本控制库拉取pipeline

2.6 使用Maven构建Java应用

2.7 本章小结

3 pipeline语法讲解

3.1 必要的Groovy知识

3.2 pipeline的组成

3.2.1 pipeline最简结构

3.2.2 步骤

3.3 post部分

3.4 pipeline支持的指令

3.5 配置pipeline本身

3.6 在声明式pipeline中使用脚本

3.7 pipeline内置基础步骤

3.7.1 文件目录相关步骤

3.7.2 制品相关步骤

3.7.3 命令相关步骤

3.7.4 其他步骤

3.7.5 小贴士

3.8 本章小结

4 环境变量与构建工具

4.1 环境变量

4.1.1 Jenkins内置变量

4.1.2 自定义pipeline环境变量

4.1.3 自定义全局环境变量

4.2 构建工具

4.2.1 构建工具的选择

4.2.2 tools指令介绍

4.2.3 JDK环境搭建

4.2.4 Maven

4.2.5 Go语言环境搭建

4.2.6 Python环境搭建

4.3 利用环境变量支持更多的构建工具

4.4 利用tools作用域实现多版本编译

4.5 本章小结

5 代码质量

5.1 静态代码分析

5.1.1 代码规范检查

5.1.2 使用PMD进行代码规范检查

5.1.3 各静态代码分析器之间的区别

5.2 单元测试

5.2.1 JUnit单元测试报告

5.2.2 JaCoCo实现代码覆盖率

5.2.3 代码覆盖率越高,软件的质量就越高吗

5.3 性能测试

5.3.1 准备性能测试环境

5.3.2 运行JMeter测试

5.4 SonarQube:持续代码质量检查

5.4.1 Maven与SonarQube集成

5.4.2 Jenkins与SonarQube集成

5.4.3 使用SonarQube Scanner实现代码扫描

5.4.4 SonarQube集成p3c

5.4.5 将分析报告推送到GitLab

5.5 Allure测试报告:更美观的测试报告

5.5.1 Allure测试报告介绍

5.5.2 集成Allure、Maven、Jenkins

5.6 当我们谈质量时,谈的是什么

5.7 本章小结

6 触发pipeline执行

6.1 什么是触发条件

6.2 时间触发

6.2.1 定时执行:cron

6.2.2 轮询代码仓库:pollSCM

6.3 事件触发

6.3.1 由上游任务触发:upstream

6.3.2 GitLab通知触发

6.3.3 在pipeline中实现GitLab trigger

6.4 将构建状态信息推送到GitLab

6.5 使用Generic Webhook Trigger插件实现触发

6.5.1 从Webhook请求中提取参数值

6.5.2 触发具体某个Jenkins项目

6.5.3 根据请求参数值判断是否触发Jenkins项目执行

6.5.4 控制打印内容

6.5.5 控制响应

6.6 本章小结

7 多分支构建

7.1 创建多分支pipeline

7.2 根据分支部署到不同的环境

7.3 when指令的用法

7.4 GitLab trigger对多分支pipeline的支持

7.5 Generic Webhook Trigger插件在多分支pipeline场景下的应用

7.6 本章小结

8 参数化pipeline

8.1 什么是参数化pipeline

8.2 使用parameters指令

8.2.1 parameters指令支持的参数类型

8.2.2 多参数

8.3 由另一个pipeline传参并触发

8.4 使用Conditional BuildStep插件处理复杂的判断逻辑

8.5 使用input步骤

8.5.1 input步骤的简单用法

8.5.2 input步骤的复杂用法

8.6 小贴士

8.6.1 获取上游pipeline的信息

8.6.2 设置手动输入步骤超时后,pipeline自动中止

8.7 本章小结

9 凭证管理

9.1 为什么要管理凭证

9.2 凭证是什么

9.3 创建凭证

9.4 常用凭证

9.4.1 Secret text

9.4.2 Username with password

9.4.3 Secret file

9.4.4 SSH Username with private key

9.5 优雅地使用凭证

9.6 使用HashiCorp Vault

9.6.1 HashiCorp Vault介绍

9.6.2 集成HashiCorp Vault

9.7 在Jenkins日志中隐藏敏感信息

9.8 本章小结

10 制品管理

10.1 制品是什么

10.2 制品管理仓库

10.3 过渡到制品库

10.4 管理Java栈制品

10.4.1 使用Maven发布制品到Nexus中

10.4.2 使用Nexus插件发布制品

10.5 使用Nexus管理Docker镜像

10.5.1 Nexus:创建Docker私有仓库

10.5.2 创建Docker私有仓库凭证

10.5.3 构建并发布Docker镜像

10.5.4 小贴士

10.6 管理原始制品

10.6.1 创建raw仓库

10.6.2 上传制品,获取制品

10.7 从其他pipeline中拷贝制品

10.8 版本号管理

10.8.1 语义化版本

10.8.2 版本号的作用

10.8.3 方便生成版本号的Version Number插件

10.9 小贴士

10.9.1 Nexus匿名用户权限问题

10.9.2 制品库的容量要大

10.10 本章小结

11 可视化构建及视图

11.1 Green Balls插件

11.2 Build Monitor View插件

11.3 使用视图

11.3.1 使用项目的维度建立视图

11.3.2 设置默认视图

11.4 本章小结

12 自动化部署

12.1 关于部署有什么好说的

12.1.1 部署不等于发布

12.1.2 什么是自动化部署

12.1.3 自动化运维工具解决的问题

12.2 Jenkins集成Ansible实现自动化部署

12.2.1 Ansible介绍

12.2.2 Jenkins与Ansible集成

12.2.3 Ansible插件详解

12.3 手动部署比自动化部署更可靠吗

12.4 如何开始自动化部署

12.5 小贴士

12.6 本章小结

13 通知

13.1 邮件通知

13.1.1 使用Jenkins内置邮件通知功能

13.1.2 使用Email Extension插件发送通知

13.2 钉钉通知

13.3 HTTP请求通知

13.4 本章小结

14 分布式构建与并行构建

14.1 Jenkins架构

14.2 增加agent

14.2.1 对agent打标签

14.2.2 通过JNLP协议增加agent

14.2.3 通过JNLP协议增加Windows agent

14.2.4 通过Swarm插件增加agent

14.2.5 agent部分详解

14.2.6 小结

14.3 将构建任务交给Docker

14.3.1 在Jenkins agent上安装Docker

14.3.2 使用Docker

14.3.3 配置Docker私有仓库

14.4 并行构建

14.4.1 在不同的分支上应用并行构建

14.4.2 并行步骤

14.4.3 并行阶段与并行步骤之间的区别

14.5 本章小结

15 扩展pipeline

15.1 为什么要扩展pipeline

15.2 在pipeline中定义函数

15.3 使用共享库扩展

15.3.1 创建共享库

15.3.2 使用共享库

15.3.3@Library的更多用法

15.3.4 共享库结构详细介绍

15.3.5 使用共享库实现pipeline模板

15.4 通过Jenkins插件实现pipeline步骤

15.4.1 生成Jenkins插件代码骨架

15.4.2 启动Jenkins测试:mvn hpi:run

15.4.3 在Jenkinsfile中使用 greet步骤

15.4.4 全局配置插件

15.5 本章小结

16 Jenkins运维

16.1 认证管理

16.1.1 使用Jenkins自带的用户数据库

16.1.2 使用LDAP认证

16.2 授权管理

16.2.1 使用Role-based Authorization Strategy插件授权

16.2.2 管理角色

16.2.3 权限大全

16.2.4 角色分配

16.2.5 小结

16.3 Jenkins监控

16.3.1 使用Monitoring插件监控

16.3.2 使用Prometheus监控

16.4 Jenkins备份

16.4.1 JENKINS_HOME介绍

16.4.2 使用Periodic Backup插件进行备份

16.5 汉化

16.6 Jenkins配置即代码

16.7 使用init.groovy配置Jenkins

16.8 本章小结

17 自动化运维经验

17.1 小团队自动化运维实践经验

17.1.1 先做监控和告警

17.1.2 一开始就应该做配置版本化

17.1.3 Jenkins化:将打包工作交给Jenkins

17.1.4 将制品交给Nexus管理

17.1.5 让Jenkins帮助我们执行Ansible

17.1.6 小结

17.2 ChatOps实践

17.2.1 Rocket.Chat

17.2.2 Hubot

17.2.3 Hubot与Jenkins集成

17.2.4 Jenkins推送消息到Rocket.Chat

17.3 本章小结

18 如何设计pipeline

18.1 设计pipeline的步骤

18.2 以X网站为例,设计pipeline

18.3 X网站pipeline详解

18.3.1 尽可能将所有的具体操作都隐藏到共享库中

18.3.2 只生成一次制品

18.3.3 对不同环境采用同一种部署方式

18.3.4 配置版本化

18.3.5 系统集成测试

18.3.6 如何实现指定版本部署

18.3.7 主干开发,分支发布

18.4 本章小结

后记

Jenkins2.x实践指南是2019年由电子工业出版社出版,作者翟志军。

得书感谢您对《Jenkins2.x实践指南》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
OpenDaylight应用指南 电子书
本书分为OpenDaylight基础概述、重点项目介绍和开发实践三部分。介绍了OpenDaylight社区背景、组织架构与项目概况;分析与阐释了OpenDaylight部分主要项目的设计思路、原理和开发技术;探讨了基于OpenDaylight进行业务控制平台开发的实践经验。本书可以作为网络技术人员和IT系统开发人员的中初级读物,帮助他们快速了解OpenDaylight社区及其大型通用SDN控制器的
Spark最佳实践 电子书
腾讯专家首次分享Spark最新实践,基于真实数据,用案例分析全面解读大数据应用设计!
Android Gradle权威指南 电子书
  30万 读者的选择   一本关于AndroidGradle的权V指南   基于新的AndroidGradle   一本由浅入深讲解AndroidGradle开发的书   对Gradle基础、Groovy基础、Gradle插件、AndroidGradle构建、基于AndroidGradle的单元测试和持续集成等做循序渐进的讲解   在讲解的过程中融入作者在项目中遇到的问题、解决问题的思路以及方法。   通过本书,读者可以入门,并且深入了解Gradle以及AndroidGradle构建,并以此为基础,深入AndroidGradle相关知识点和使用技巧,让读者在工作中事半功倍。
Nmap渗透测试指南 电子书
本书专门介绍Nmap渗透测试的有关内容,全书共分12章,从基础的Nmap下载、安装开始介绍,由浅入深地对Nmap的功能作了完整详细的说明。同时书中还包括了大量的实践案例,更有利于读者对Nmap使用的理解。本书主要内容包括:Nmap基础、Nmap工作原理、扫描指定段、Nmap主机发现、TCPACKPing扫描、ARPPing扫描、路由跟踪、探索网络、从Nmap识别端口状态、隐蔽扫描、指纹识别与探测、
Go语言定制指南 电子书
本书从Go语言语法树出发,重新审视Go语言源文件,阐述定制Go语言的核心技术。书中通过对go/ast、go/ssa等包的分析,一步步深入Go语言核心,最后简要介绍LLVM,读者可以结合LLVM和Go语言语法树按需定制,创造一个语法与Go语言语法类似的简单的编程语言及与其对应的编译器,达到掌握自制编程语言和编译器的目的。