通過閱讀《Jenkins 2權威指南》可以學到如何利用Jenkins 2的新特性來定義流水線即代碼、集成其他關鍵技術,以及創建自動化的、可靠的流水線,以便簡化和加速DevOps環境的建設。
基本介紹
- 書名:Jenkins 2權威指南
- 作者:【美】布倫特·萊斯特(Brent Laster)
- 譯者:郝樹偉等
- ISBN:978-7-121-35763-3
- 頁數:564
- 定價:128
- 出版社:電子工業出版社
- 出版時間:2019-04
- 裝幀:平裝
- 開本:16
內容提要,目錄,
內容提要
設計、實現並且執行具有一定靈活性、可控性以及易於維護性的持續交付流水線,對於以前版本的Jenkins來說是不可能實現的。通過這本實用的書籍,構建管理人員、開發人員、測試人員以及其他專業人員將會學到如何利用Jenkins 2的新特性來定義流水線即代碼、集成其他關鍵技術,以及創建自動化的、可靠的流水線,以便簡化和加速DevOps環境的建設。
作者Brent Laster向你展示了Jenkins 2與這個流行的開源自動化平台基於Web的傳統版本有著很大的不同。如果你熟悉Jenkins並且想利用這些新技術來改造老舊流水線或者構建現代的自動化持續交付環境,那么這本書適合你。
目錄
第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
在一個階段中使用 parallel234
腳本檢查與錯誤報告 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