Jenkins 2權(quán)威指南(博文視點(diǎn)出品) [Jenkins 2: Up and Running]

2021-05-18 21:29 更新

Jenkins 2權(quán)威指南

[美] Brent Laster(布倫特·萊斯特) 著,郝樹偉,石雪峰,雷濤,李華強(qiáng) 譯

  • 出版社: 電子工業(yè)出版社
  • ISBN:9787121357633
  • 版次:1
  • 商品編碼:12575090
  • 品牌:博文視點(diǎn)
  • 包裝:平裝
  • 外文名稱:Jenkins 2: Up and Running
  • 開本:16開
  • 出版時(shí)間:2019-04-01
  • 用紙:膠版紙
  • 頁數(shù):564
  • 字?jǐn)?shù):752400
  • 正文語種:中文

點(diǎn)此購買

編輯推薦

適讀人群 :適合想要學(xué)習(xí)Jenkins并且想利用其新技術(shù)來改造老舊流水線或者構(gòu)建現(xiàn)代的自動化持續(xù)交付環(huán)境的讀者

1 Jenkins創(chuàng)始人Kohsuke kawaguchi,DevOps時(shí)代社區(qū)聯(lián)合創(chuàng)始人蕭田國、景韻傾情作序,原書作者Brent Laster專門為中文版作序,業(yè)內(nèi)專家Jeff Liu、徐奇琛、楊振濤等聯(lián)袂力薦。

2 這是一本實(shí)用的Jenkins書籍,通過閱讀本書可以學(xué)到如何利用Jenkins 2的新特性來定義流水線即代碼、集成其他關(guān)鍵技術(shù),以及創(chuàng)建自動化的、可靠的流水線,以便簡化和加速DevOps環(huán)境的建設(shè)。

本書包含的內(nèi)容。

  • 使用Jenkins通過代碼創(chuàng)建持續(xù)交付流水線
  • 理解如何遷移現(xiàn)有的任務(wù)和流水線
  • 駕馭一些控制訪問和安全性的優(yōu)秀實(shí)踐
  • 領(lǐng)會流水線共享庫的結(jié)構(gòu)、編碼以及用法
  • 學(xué)會何時(shí)使用聲明式語法和腳本式語法
  • 探索Jenkins中新的和已有的項(xiàng)目類型
  • 掌握新的Blue Ocean圖形界面
  • 在流水線中利用底層的操作系統(tǒng)
  • 集成分析工具、制品管理和容器

內(nèi)容簡介

設(shè)計(jì)、實(shí)現(xiàn)并且執(zhí)行具有一定靈活性、可控性以及易于維護(hù)性的持續(xù)交付流水線,對于以前版本的Jenkins來說是不可能實(shí)現(xiàn)的。通過這本實(shí)用的書籍,構(gòu)建管理人員、開發(fā)人員、測試人員以及其他專業(yè)人員將會學(xué)到如何利用Jenkins 2的新特性來定義流水線即代碼、集成其他關(guān)鍵技術(shù),以及創(chuàng)建自動化的、可靠的流水線,以便簡化和加速DevOps環(huán)境的建設(shè)。作者Brent Laster向你展示了Jenkins 2與這個(gè)流行的開源自動化平臺基于Web的傳統(tǒng)版本有著很大的不同。

作者簡介

Brent Laster是一位全球培訓(xùn)師、作家及開源技術(shù)的演講者,也是一家科技公司的高級 研發(fā)經(jīng)理。他投身軟件行業(yè)已經(jīng)超過25年,負(fù)責(zé)過各種技術(shù)和管理崗位。除了本書,他還撰寫了 Professional Git(Wiley),一本適用于Git初學(xué)者和有經(jīng)驗(yàn)人士的易于使用的綜合性指南手冊,以及 Continuous Integration vs. Continuous Delivery vs. Continuous Deployment(O’Reilly),一本幫助初學(xué)者理解這幾個(gè)概念區(qū)別的指南。你能夠經(jīng)??吹紹rent主持一些行業(yè)會議的工作坊以及舉辦Safari上的一些在線培訓(xùn)課程。 Brent總是盡力花時(shí)間學(xué)習(xí)和開發(fā)一些技術(shù)與領(lǐng)導(dǎo)力技能,然后分享給別人。他相信無論主題或者技術(shù)是什么,沒有什么能替代在提供給別人知識達(dá)成目標(biāo)的過程中所產(chǎn)生的靈感和潛能。你可以通過 LinkedIn 或 Twitter 的 @BrentCLaster 聯(lián)系 Brent。

郝樹偉,

《Jenkins**指南》首位譯者,阿里云高級研發(fā)工程師,主要負(fù)責(zé)開源集成和DevOps相關(guān)產(chǎn)品的研發(fā),在CI/CD領(lǐng)域有豐富經(jīng)驗(yàn),在Jenkins開源社區(qū)與相關(guān)書籍翻譯、漢化方面有較多貢獻(xiàn)和經(jīng)驗(yàn)。

石雪峰,

Jenkins全球推廣大使、Certified Jenkins Engineer、Jenkins中文社區(qū)核心成員、Jenkins的狂熱愛好者。目前就職于京東商城前臺工程效率團(tuán)隊(duì),負(fù)責(zé)公司級持續(xù)交付和DevOps平臺體系建設(shè)。

雷濤,

Jenkins全球推廣大使、Certified Jenkins Engineer、DevOps標(biāo)準(zhǔn)核心編寫專家。目前就職于百度工程效率部,曾先后就職于新浪網(wǎng)、摩托羅拉、諾基亞、愛立信、樂視致新等國內(nèi)外知名企業(yè),專注于互聯(lián)網(wǎng)、電信、金融、無人駕駛汽車等行業(yè)的軟件工程效率提升,DevOps解決方案,持續(xù)交付,ASPICE/ISO 26262研發(fā)過程落地等領(lǐng)域。

李華強(qiáng),

樂融致新高級配置經(jīng)理,軟件配置管理(SCM)領(lǐng)域的一名老兵,先后就職于北電網(wǎng)絡(luò)、愛立信、飛維美地、樂視、樂融等多家企業(yè),從事與SCM、DevOps相關(guān)的工作。Jenkins的忠實(shí)粉絲、**實(shí)踐的推廣者,Jenkins官方Certified Jenkins Engineer(CJE)和Certified CloudBees Jenkins Platform Engineer(CCJE)認(rèn)證者。

精彩書評

  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是近年來一直炙手可熱的開源項(xiàng)目,也是各大公司搭建部署體系、規(guī)劃持續(xù)交付的必經(jīng)之路。軟件行業(yè)高速發(fā)展、互聯(lián)網(wǎng)產(chǎn)品不斷迭代,Jenkins自身也隨之變化、擴(kuò)展、精進(jìn)。《Jenkin 2**指南》一書會指引大家快速習(xí)得全新的技能,幫助企業(yè)持續(xù)演進(jìn)和突破CI/CD的能力。   ——徐奇琛 京東前臺技術(shù)服務(wù)提升部負(fù)責(zé)人   作為持續(xù)集成領(lǐng)域著名的開源項(xiàng)目,Jenkins近年來隨著Cloud Native等技術(shù)的發(fā)展變得愈加活躍,并快速進(jìn)化到了Jenkins 2時(shí)代。Jenkins 2不只是簡單的版本升級,而是通過流水線等特性帶來了一整套CI/CD解決方案,成長為真正的軟件交付流水線工作臺,也成為每一位專業(yè)的軟件工程師都需要掌握的入門技能!   本書的翻譯非常及時(shí),為國內(nèi)的廣大開發(fā)人員提供了**的學(xué)習(xí)和參考資料。本書在全面介紹Jenkins 2的同時(shí),既能讓新手快速入門,也能讓經(jīng)驗(yàn)豐富的工程師及時(shí)更新自己的知識和技能,可以說為國內(nèi)的互聯(lián)網(wǎng)及軟件產(chǎn)業(yè)帶來了軟件交付質(zhì)量和效率的雙提升,包括我本人在組織Jenkins中文社區(qū)的技術(shù)交流工作中也成為其早期受益者。閱讀本書不但可以了解和學(xué)習(xí)如何將已有的任務(wù)遷移到新版本上,而且可以學(xué)習(xí)*新的Jenkins DSL來讓流水線也可編程,使其更加靈活、智能和高效,這本書非常值得一讀。   ——楊振濤 vivo互聯(lián)網(wǎng)架構(gòu)師   這是我力薦的介紹Jenkins新特性的書籍。寫一本幾乎所有受眾都適用的書真是一個(gè)壯舉,而Brent已經(jīng)圓滿地完成了這一任務(wù)。   ——Chaim "Tinjaw" Krause   Brent Laster在展示Jenkins威力方面做得太棒了,在解析Jenkins基本組件的同時(shí)又提供了全面的指導(dǎo)來獲取Jenkins 2以外的更多知識。那些有價(jià)值的流水線即代碼的示例會為實(shí)現(xiàn)持續(xù)交付添磚加瓦。這些應(yīng)同屬于Jenkins新老用戶的工具箱。   ——Brian Dawson DevOps傳教士,CloudBees公司

目錄

第1章 Jenkins 2簡介 1

Jenkins 2是什么 2

Jenkinsfile 3

聲明式流水線 5

Blue Ocean界面 6

Jenkins 2的全新任務(wù)類型 7

做出轉(zhuǎn)變的原因 10

DevOps理念的轉(zhuǎn)變 10

裝配流水線 11

可恢復(fù)性 11

可配置性 11

共享工作空間 11

專業(yè)知識 12

訪問邏輯 12

流水線源管理 12

競爭 12

迎接挑戰(zhàn) 13

兼容性 13

流水線兼容性 13

插件兼容性 15

檢查兼容性 20

總結(jié) 21

第2章 基礎(chǔ)知識 23

語法:腳本式流水線和聲明式流水線 24

如何選擇腳本式語法和聲明式語法 25

系統(tǒng)(system):主節(jié)點(diǎn)(master)、節(jié)點(diǎn)(node)、代理節(jié)點(diǎn)(agent)和執(zhí)行器(executor) 26

主節(jié)點(diǎn) 27

節(jié)點(diǎn) 27

代理節(jié)點(diǎn) 27

執(zhí)行器 28

創(chuàng)建節(jié)點(diǎn) 29

結(jié)構(gòu):使用Jenkins DSL 31

節(jié)點(diǎn) 32

階段 34

步驟 34

支持環(huán)境:開發(fā)一個(gè)流水線腳本 36

創(chuàng)建一個(gè)流水線項(xiàng)目 36

編輯器 38

使用代碼片段生成器 39

運(yùn)行一條流水線 43

回放 49

總結(jié) 52

第3章 流水線執(zhí)行流程 53

觸發(fā)任務(wù) 53

在其他項(xiàng)目構(gòu)建后構(gòu)建 54

周期性構(gòu)建 54

使用GitHub鉤子觸發(fā)器進(jìn)行GitSCM輪詢 57

SCM輪詢 57

靜默期 58

遠(yuǎn)程觸發(fā)構(gòu)建 58

用戶輸入 58

輸入 59

參數(shù) 62

多個(gè)輸入?yún)?shù)的返回值 68

參數(shù)與聲明式流水線 69

流程控制選項(xiàng) 74

超時(shí)(timeout) 74

重試(retry) 76

睡眠(sleep) 76

等待直到(waitUntil) 76

處理并發(fā) 78

使用lock步驟對資源加鎖 78

使用milestone來控制并發(fā)構(gòu)建 80

在多分支流水線中限制并發(fā) 82

并行地運(yùn)行任務(wù) 82

有條件的執(zhí)行功能 92

構(gòu)建后處理 .94

腳本式流水線構(gòu)建后處理 94

聲明式流水線與構(gòu)建后處理 96

總結(jié) 97

第4章 通知與報(bào)告 99

通知 99

電子郵件 100

協(xié)作服務(wù) 110

報(bào)告 120

發(fā)布HTML報(bào)告 120

總結(jié) 123

第5章 訪問與安全 125

安全加固Jenkins 125

啟用安全性 126

其他全局安全配置 129

Jenkins中的憑證 133

憑證范圍 134

憑證域 135

憑證提供者 135

憑證存儲 136

管理憑證 136

選擇憑證提供者 136

選擇憑證類型 137

通過提供者指定憑證類型 138

創(chuàng)建和管理憑證 139

上下文鏈接 141

添加一個(gè)新域或者憑證 141

使用新域和憑證 144

高級憑證:基于角色的訪問權(quán)限 145

基本用途 146

管理角色 147

分配角色 152

角色策略宏 155

在流水線中使用憑證 157

用戶名和密碼 157

SSH密鑰 158

令牌憑證 159

控制腳本安全性 160

腳本檢查 160

腳本批準(zhǔn) 161

Groovy沙箱 162

Jenkins憑證與Vault配合使用 164

方法 164

安裝 165

創(chuàng)建一個(gè)策略 165

身份驗(yàn)證 166

在Jenkins中使用Vault 168

總結(jié) 171

第6章 擴(kuò)展你的流水線 173

可信庫和不可信庫 173

內(nèi)部庫與外部庫 174

內(nèi)部庫 174

外部庫 176

從代碼倉庫獲取庫 178

Modern SCM 178

Legacy SCM 178

在流水線腳本中使用庫 179

從源碼版本控制中自動下載庫 180

加載庫到腳本中 180

Jenkins項(xiàng)目中的庫范圍 182

庫結(jié)構(gòu) 183

樣本庫例程 183

共享庫代碼的結(jié)構(gòu) 184

使用第三方庫 195

直接加載代碼 196

從外部SCM加載代碼 196

回放外部代碼和庫 198

深入研究可信與不可信代碼 200

總結(jié) 203

第7章 聲明式流水線 205

動機(jī) 206

不直觀 206

掌握Groovy 206

其他必需的裝配 206

結(jié)構(gòu) 207

代碼塊 208

部分 208

指令 209

步驟 209

條件 210

構(gòu)建代碼塊 210

pipeline 211

agent 212

environment 215

tools 216

options 219

triggers 222

parameters 224

libraries 227

stages 228

post 231

處理非聲明式的代碼 232

檢查你的插件 233

創(chuàng)建一個(gè)共享庫 233

在pipeline代碼塊之外放置代碼 233

script語句 234

在一個(gè)階段中使用parallel 234

腳本檢查與錯(cuò)誤報(bào)告 235

聲明式流水線與Blue Ocean接口 238

總結(jié) 238

第8章 理解項(xiàng)目類型 241

通用項(xiàng)目選項(xiàng) 241

基礎(chǔ)設(shè)置 241

源碼管理 247

構(gòu)建觸發(fā)器 249

構(gòu)建環(huán)境 256

構(gòu)建 266

構(gòu)建后操作 266

項(xiàng)目類型 266

自由風(fēng)格類型項(xiàng)目 267

Maven項(xiàng)目類型 267

流水線項(xiàng)目類型 270

外部任務(wù)項(xiàng)目類型 272

多配置項(xiàng)目類型 275

Ivy項(xiàng)目 280

文件夾 282

多分支流水線項(xiàng)目 287

GitHub組織項(xiàng)目 292

Bitbucket團(tuán)隊(duì)/項(xiàng)目 296

總結(jié) 299

第9章 Blue Ocean用戶界面 301

第一部分:管理已有的流水線 302

主界面 302

項(xiàng)目詳情頁面 305

運(yùn)行頁面 316

第二部分:使用Blue Ocean編輯器 325

不依賴現(xiàn)有Jenkinsfile創(chuàng)建一個(gè)全新的流水線 326

使用編輯器 330

編輯已有的流水線 340

導(dǎo)入和編輯已有的流水線 344

使用非GitHub倉庫支持流水線 354

總結(jié) 356

第10章 轉(zhuǎn)換 357

通用的準(zhǔn)備 358

邏輯和準(zhǔn)確性 358

項(xiàng)目類型 358

系統(tǒng) 358

訪問 358

全局配置 359

插件 359

共享庫 359

將自由風(fēng)格類型的流水線轉(zhuǎn)換為腳本式流水線 360

源碼 364

編譯 369

單元測試 373

集成測試 377

遷移流水線接下來的部分 380

從Jenkins流水線項(xiàng)目轉(zhuǎn)換為Jenkinsfile 385

方法 388

最后的步驟 395

從腳本式流水線轉(zhuǎn)換為聲明式流水線 397

樣本流水線 397

轉(zhuǎn)換 399

完成轉(zhuǎn)換 402

可用于轉(zhuǎn)換的通用指南 403

總結(jié) 405

第11章 操作系統(tǒng)環(huán)境集成(shell、工作空間、環(huán)境和文件) 407

使用shell的步驟 407

sh步驟 408

bat步驟 413

powershell步驟 414

使用環(huán)境變量 415

withEnv步驟 416

使用工作空間 418

創(chuàng)建自定義工作空間 418

清理工作空間 420

文件和目錄步驟 422

使用文件 422

使用目錄 423

使用文件和目錄的更多操作 424

總結(jié) 425

第12章 集成分析工具 427

SonarQube調(diào)查 427

使用個(gè)人規(guī)則 428

質(zhì)量門和配置文件 432

掃描程序 434

將SonarQube與Jenkins一起使用 434

全局配置 434

在自由風(fēng)格類型項(xiàng)目中使用SonarQube 436

在流水線項(xiàng)目中使用SonarQube 436

利用SonarQube分析的結(jié)果 437

在Jenkins中集成SonarQube的輸出 441

代碼覆蓋率:與JaCoCo集成 442

關(guān)于JaCoCo 442

JaCoCo與流水線集成 443

在Jenkins中集成JaCoCo的輸出 445

總結(jié) 446

第13章 集成制品管理 447

發(fā)布和獲取制品 447

安裝和全局配置 448

在腳本式流水線中使用Artifactory 449

執(zhí)行其他任務(wù) 454

下載指定文件到指定目錄 454

上傳指定文件到指定路徑 454

設(shè)置構(gòu)建保留策略 455

構(gòu)建提升 455

聲明式流水線集成 455

Artifactory與Jenkins輸出集成 456

制品歸檔和指紋 457

總結(jié) 462

第14章 集成容器 465

配置成一個(gè)云 465

全局配置 466

使用Docker鏡像作為代理節(jié)點(diǎn) 469

在流水線中使用云鏡像 473

在聲明式流水線中動態(tài)創(chuàng)建的代理節(jié)點(diǎn) 477

Docker流水線全局變量 480

全局變量 480

Docker應(yīng)用全局變量方法 481

Docker鏡像全局變量方法 487

Docker容器全局變量方法 491

通過shell運(yùn)行Docker 492

總結(jié) 493

第15章 其他接口 495

使用命令行接口 496

直接使用SSH接口 496

使用CLI客戶端 499

使用Jenkins REST API 501

過濾結(jié)果 502

啟動構(gòu)建 504

使用腳本控制臺 506

總結(jié) 508

第16章 故障處理 509

深入流水線步驟 509

處理序列化錯(cuò)誤 512

連續(xù)傳遞風(fēng)格 513

序列化流水線 513

NotSerializableException 513

處理非序列化錯(cuò)誤 514

識別引發(fā)錯(cuò)誤的腳本行 517

處理流水線異常 518

在聲明式流水線中使用非聲明式代碼 518

未授權(quán)代碼(腳本和方法授權(quán)) 522

不支持的操作 523

系統(tǒng)日志 523

時(shí)間戳 525

流水線耐用性設(shè)置 526

總結(jié) 527

關(guān)于作者 529

封面介紹 529

關(guān)于譯者 530

點(diǎn)此購買

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號