關(guān)于我們
書(shū)單推薦
新書(shū)推薦
|
Jenkins 2權(quán)威指南 讀者對(duì)象:如果你熟悉Jenkins并且想利用這些新技術(shù)來(lái)改造老舊流水線或者構(gòu)建現(xiàn)代的自動(dòng)化持續(xù)交付環(huán)境,那么這本書(shū)適合你。
設(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è)試人員以及其他專業(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)版本有著很大的不同。
Brent Laster 是一位全球培訓(xùn)師、作家、以及開(kāi)源技術(shù)的演講者,同時(shí)也是一個(gè)頂尖科技公司的高級(jí)研發(fā)經(jīng)理。 他投身軟件行業(yè)已經(jīng)超過(guò)25年,擔(dān)當(dāng)過(guò)各種技術(shù)和管理崗位。除了Jenkins 2:使用指南,他還撰寫了Professional Git (Wiley), 一本適用于Git初學(xué)者和有經(jīng)驗(yàn)者的綜合性的易于使用的指南手冊(cè),以及 Continuous Integration vs. Continuous Delivery vs. Continuous Deployment (O’Reilly),一本幫助初學(xué)者理解它們區(qū)別的指南。你能夠經(jīng)常發(fā)現(xiàn)Brent主持一些行業(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專家,《Jenkins 權(quán)威指南》譯者。石雪峰 樂(lè)視軟件配置管理團(tuán)隊(duì)負(fù)責(zé)人,07年天津大學(xué)畢業(yè)后赴日從事多年軟件開(kāi)發(fā)工作,回國(guó)后加入華為,現(xiàn)樂(lè)視致新軟件配置管理工程效率團(tuán)隊(duì)負(fù)責(zé)人,技術(shù)總監(jiān),負(fù)責(zé)樂(lè)視內(nèi)部產(chǎn)品軟件交付,研發(fā)工具鏈基礎(chǔ)設(shè)施建設(shè),多年安卓產(chǎn)品技術(shù)經(jīng)驗(yàn),深信技術(shù)改變世界。雷濤 雷濤,就職于百度 工程效率部,現(xiàn)任 一職。作為行業(yè)享有盛名的大咖,雷濤行事低調(diào),對(duì)工作熱情飽滿,多次受邀作為嘉賓出席各類大會(huì),并發(fā)表了精彩演講。李華強(qiáng),就職于Certified Jenkins Engineer,現(xiàn)任 一職。作為行業(yè)享有盛名的大咖,李華強(qiáng)行事低調(diào),對(duì)工作熱情飽滿,多次受邀作為嘉賓出席各類大會(huì),并發(fā)表了精彩演講。
目錄
第1章 Jenkins 2簡(jiǎn)介 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è)知識(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
選擇憑證類型 137
通過(guò)提供者指定憑證類型 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)目類型 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)目詳情頁(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)目類型 358
系統(tǒng) 358
訪問(wèn) 358
全局配置 359
插件 359
共享庫(kù) 359
將自由風(fēng)格類型的流水線轉(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ì)量門和配置文件 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
在聲明式流水線中動(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
你還可能感興趣
我要評(píng)論
|