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

2021-05-18 21:29 更新

Jenkins 2權(quán)威指南

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

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

點(diǎn)此購(gòu)買(mǎi)

編輯推薦

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

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

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

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

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

內(nèi)容簡(jiǎn)介

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

作者簡(jiǎn)介

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

郝樹(shù)偉,

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

石雪峰,

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

雷濤,

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

李華強(qiáng),

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

精彩書(shū)評(píng)

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

目錄

第1章 Jenkins 2簡(jiǎn)介 1

Jenkins 2是什么 2

Jenkinsfile 3

聲明式流水線 5

Blue Ocean界面 6

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

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

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

裝配流水線 11

可恢復(fù)性 11

可配置性 11

共享工作空間 11

專(zhuān)業(yè)知識(shí) 12

訪問(wèn)邏輯 12

流水線源管理 12

競(jìng)爭(zhēng) 12

迎接挑戰(zhàn) 13

兼容性 13

流水線兼容性 13

插件兼容性 15

檢查兼容性 20

總結(jié) 21

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

語(yǔ)法:腳本式流水線和聲明式流水線 24

如何選擇腳本式語(yǔ)法和聲明式語(yǔ)法 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)境:開(kāi)發(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步驟對(duì)資源加鎖 78

使用milestone來(lái)控制并發(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章 訪問(wèn)與安全 125

安全加固Jenkins 125

啟用安全性 126

其他全局安全配置 129

Jenkins中的憑證 133

憑證范圍 134

憑證域 135

憑證提供者 135

憑證存儲(chǔ) 136

管理憑證 136

選擇憑證提供者 136

選擇憑證類(lèi)型 137

通過(guò)提供者指定憑證類(lèi)型 138

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

上下文鏈接 141

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

使用新域和憑證 144

高級(jí)憑證:基于角色的訪問(wèn)權(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

可信庫(kù)和不可信庫(kù) 173

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

內(nèi)部庫(kù) 174

外部庫(kù) 176

從代碼倉(cāng)庫(kù)獲取庫(kù) 178

Modern SCM 178

Legacy SCM 178

在流水線腳本中使用庫(kù) 179

從源碼版本控制中自動(dòng)下載庫(kù) 180

加載庫(kù)到腳本中 180

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

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

樣本庫(kù)例程 183

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

使用第三方庫(kù) 195

直接加載代碼 196

從外部SCM加載代碼 196

回放外部代碼和庫(kù) 198

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

總結(jié) 203

第7章 聲明式流水線 205

動(dòng)機(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è)共享庫(kù) 233

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

script語(yǔ)句 234

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

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

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

總結(jié) 238

第8章 理解項(xiàng)目類(lèi)型 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)目類(lèi)型 266

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

Maven項(xiàng)目類(lèi)型 267

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

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

多配置項(xiàng)目類(lèi)型 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)目詳情頁(yè)面 305

運(yùn)行頁(yè)面 316

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

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

使用編輯器 330

編輯已有的流水線 340

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

使用非GitHub倉(cāng)庫(kù)支持流水線 354

總結(jié) 356

第10章 轉(zhuǎn)換 357

通用的準(zhǔn)備 358

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

項(xiàng)目類(lèi)型 358

系統(tǒng) 358

訪問(wèn) 358

全局配置 359

插件 359

共享庫(kù) 359

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

源碼 364

編譯 369

單元測(cè)試 373

集成測(cè)試 377

遷移流水線接下來(lái)的部分 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ì)量門(mén)和配置文件 432

掃描程序 434

將SonarQube與Jenkins一起使用 434

全局配置 434

在自由風(fēng)格類(lèi)型項(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

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

Docker流水線全局變量 480

全局變量 480

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

Docker鏡像全局變量方法 487

Docker容器全局變量方法 491

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

總結(jié) 493

第15章 其他接口 495

使用命令行接口 496

直接使用SSH接口 496

使用CLI客戶端 499

使用Jenkins REST API 501

過(guò)濾結(jié)果 502

啟動(dòng)構(gòu)建 504

使用腳本控制臺(tái) 506

總結(jié) 508

第16章 故障處理 509

深入流水線步驟 509

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

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

序列化流水線 513

NotSerializableException 513

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

識(shí)別引發(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)此購(gòu)買(mǎi)

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)