《精通SaltStack》是2016年電子工業出版社出版的圖書,作者是【美】 Joseph Hall(約瑟夫·霍爾)。
《精通SaltStack》由SaltStack 公司資深雲集成工程師Joseph Hall 編寫,全書共11 個章節。《精通SaltStack》對應Salt2015.5 版本,事無巨細且通俗易懂地講解了Salt 的內部傳輸機制、異步任務系統、Salt SSH、Salt Cloud、Rest API 等各個子系統,並詳細講解了如何擴展Salt,如何使用Salt Cloud 完成自動水平擴展等。作者同時分享了在使用Salt 時的最佳經驗,讓讀者可以快速了解Salt 核心,做到融會貫通並靈活運用到實際工作中。
《精通SaltStack》介紹了一些Salt 更先進的特性,能夠幫助管理伺服器組並希望了解如何添加新功能和擴展他們的工具集的專業人士。
基本介紹
- 書名:精通SaltStack
- 作者:【美】 Joseph Hall(約瑟夫·霍爾)
- 譯者:姚炫偉 馮宇
- ISBN:9787121292637
- 頁數:284
- 出版社:電子工業出版社
- 出版時間:2016 年8月
- 開本:16開
編輯推薦,作譯者,目錄,
編輯推薦
本書作者是SaltStack公司資深雲集成工程師,其專門為中文版圖書作序;而且SaltStack公司創始人和CTO Thomas S.Hatch也為本書傾情作序
通過本書你將學到:
學習專業人士如何管理他們的基礎架構,以及他們通過Salt的哪些技術來保證業務平穩運行。
理解Salt的動機,以及它們將影響你的使用方式。
從新的角度去看待那些熟知的特性,讓你用更好的方式處理日常任務。
使用Salt SSH去管理那些不適合Salt傳統用例的伺服器。
通過這些自動化配置,可以更自動化地管理你的伺服器,讓伺服器變得更智慧型。
更好地使用基於雲的服務,包括如EC2、Azure及OpenStack等計算雲。
學習新的RAET協定,並了解它如何改變自動化工作方式。
通過本書你將學到:
學習專業人士如何管理他們的基礎架構,以及他們通過Salt的哪些技術來保證業務平穩運行。
理解Salt的動機,以及它們將影響你的使用方式。
從新的角度去看待那些熟知的特性,讓你用更好的方式處理日常任務。
使用Salt SSH去管理那些不適合Salt傳統用例的伺服器。
通過這些自動化配置,可以更自動化地管理你的伺服器,讓伺服器變得更智慧型。
更好地使用基於雲的服務,包括如EC2、Azure及OpenStack等計算雲。
學習新的RAET協定,並了解它如何改變自動化工作方式。
作譯者
從最初的技術支持到Web 開發者,Joseph Hall 幾乎已經觸及到了現代科技的方方面面,他做過QA 工程師、系統管理員、Linux 講師和雲工程師。目前,他是SaltStack 的高級雲工程師和集成工程師。Joseph 喜歡和合伙人以及SaltStack 的同事們分享商業上的絕頂妙招。同時他也是一個典型的大廚。Joseph 最大的樂趣就是談論他所謂的計算美食法。
目錄
第1 章Salt 概覽1
遠程執行命令1
Master 和Minion 2
Targeting Minion 2
運行模組方法6
SLS 檔案樹9
SLS 檔案9
使用top 檔案將配置綁定在一起9
SLS 目錄組織10
使用State 進行配置管理10
使用include 塊11
使用requisite 排序11
prereq 15
反轉requisite 15
擴展SLS 檔案16
Grain、Pillar 及模板基礎17
使用Grain 來獲取Minion 特徵數據17
使用Pillar 使變數集中化18
通過模板動態管理檔案20
Jinja 快速入門21
遠程執行命令1
Master 和Minion 2
Targeting Minion 2
運行模組方法6
SLS 檔案樹9
SLS 檔案9
使用top 檔案將配置綁定在一起9
SLS 目錄組織10
使用State 進行配置管理10
使用include 塊11
使用requisite 排序11
prereq 15
反轉requisite 15
擴展SLS 檔案16
Grain、Pillar 及模板基礎17
使用Grain 來獲取Minion 特徵數據17
使用Pillar 使變數集中化18
通過模板動態管理檔案20
Jinja 快速入門21
總結23
第2 章深入Salt 內部24
理解Salt 配置24
配置樹(configuration tree) 25
Salt 快取27
渲染器32
渲染SLS 檔案32
渲染器管道33
模板檔案服務34
理解載入器34
動態模組35
執行模組35
Cloud 模組36
深入State 編譯器37
命令式與聲明式37
requisite 38
High State 與Low State 39
High State 39
Low State 43
實行State 化45
總結46
第3 章探索Salt SSH 47
掌握SSH 47
遠程shell 47
使用Roster 48
純文本Roster 48
其他的內置Roster 51
構建動態Roster 53
使用Salt SSH 54
Salt 與Salt SSH 56
理解salt-thin agent 57
構建salt-thin 包57
部署thin 包59
執行thin 包59
使用原生SSH 模式64
快取SSH 連線65
總結66
第4 章異步管理任務67
事件系統67
基本介紹67
事件數據結構68
查看事件數據68
事件命名空間73
通用事件75
通用雲事件77
Salt API 事件79
構建反應器80
配置反應器80
編寫反應器81
編寫更複雜的反應器84
使用佇列系統91
佇列如何工作91
在反應器中使用佇列94
總結98
第5 章Salt Cloud 進階99
了解Salt Cloud 配置99
全局配置100
Provider 和Profile 配置100
擴展配置塊103
構建自定義部署腳本105
理解Salt Bootstrap 腳本105
回看遺留的部署腳本108
定製部署腳本109
給腳本傳遞參數111
使用檔案映射112
cloud 映射概覽113
構建自動伸縮的反應器116
Cloud 快取116
使用Cloud 快取事件119
總結122
第6 章使用Salt REST 123
Salt HTTP 類庫123
為什麼是Salt 特定的類庫124
使用http.query 方法125
使用http.query State 129
理解Salt API 138
Salt API 是什麼138
部署Salt API 138
創建SSL 證書141
配置認證143
邁出Salt API 第一步144
使用webhook 148
安全加固150
更複雜的認證151
總結152
第7 章理解RAET 協定153
比對RAET 與ZeroMQ 153
先看看HTTP 154
SSH,曾經的最愛154
使用ZeroMQ 155
RAET 的必要性156
基於流程的編程方法157
拼圖157
開啟RAET 之旅160
配置RAET 160
RAET 的架構162
總結165
第8 章擴展策略166
關於級聯166
蘿蔔白菜,各有所愛(Different folks,different strokes) 166
無須細緻化管理167
配置級聯關係168
使用多Master 實現高可用168
內置的高可用配置168
傳統的高可用方式169
同步檔案170
摻入外部數據源175
外部任務快取175
外部檔案系統178
外部Pillar 187
使用Master API 190
Salt 密鑰190
配置190
file 和Pillar roots 190
使用wheel 反應器191
基礎設施的壓力測試191
使用Minion Swarm 192
總結193
第9 章用Salt 監控系統194
監控的基礎知識194
建立一條基線194
使用Salt 讀取系統核心信息195
使用Returner 監控系統202
選定一個Returner 203
使用監控State 204
定義一個監控State 205
Web 調用監控207
使用beacon 209
監控檔案變化209
beacon 間隔210
設定告警211
在State 檔案中設定告警211
從beacon 中告警211
總結214
第10 章探索最佳實踐215
適應未來的基礎設施215
設定目錄結構216
標準目錄路徑216
.sls 與init.sls 217
淺層級與深層級218
進一步細分219
高效率SLS 219
第2 章深入Salt 內部24
理解Salt 配置24
配置樹(configuration tree) 25
Salt 快取27
渲染器32
渲染SLS 檔案32
渲染器管道33
模板檔案服務34
理解載入器34
動態模組35
執行模組35
Cloud 模組36
深入State 編譯器37
命令式與聲明式37
requisite 38
High State 與Low State 39
High State 39
Low State 43
實行State 化45
總結46
第3 章探索Salt SSH 47
掌握SSH 47
遠程shell 47
使用Roster 48
純文本Roster 48
其他的內置Roster 51
構建動態Roster 53
使用Salt SSH 54
Salt 與Salt SSH 56
理解salt-thin agent 57
構建salt-thin 包57
部署thin 包59
執行thin 包59
使用原生SSH 模式64
快取SSH 連線65
總結66
第4 章異步管理任務67
事件系統67
基本介紹67
事件數據結構68
查看事件數據68
事件命名空間73
通用事件75
通用雲事件77
Salt API 事件79
構建反應器80
配置反應器80
編寫反應器81
編寫更複雜的反應器84
使用佇列系統91
佇列如何工作91
在反應器中使用佇列94
總結98
第5 章Salt Cloud 進階99
了解Salt Cloud 配置99
全局配置100
Provider 和Profile 配置100
擴展配置塊103
構建自定義部署腳本105
理解Salt Bootstrap 腳本105
回看遺留的部署腳本108
定製部署腳本109
給腳本傳遞參數111
使用檔案映射112
cloud 映射概覽113
構建自動伸縮的反應器116
Cloud 快取116
使用Cloud 快取事件119
總結122
第6 章使用Salt REST 123
Salt HTTP 類庫123
為什麼是Salt 特定的類庫124
使用http.query 方法125
使用http.query State 129
理解Salt API 138
Salt API 是什麼138
部署Salt API 138
創建SSL 證書141
配置認證143
邁出Salt API 第一步144
使用webhook 148
安全加固150
更複雜的認證151
總結152
第7 章理解RAET 協定153
比對RAET 與ZeroMQ 153
先看看HTTP 154
SSH,曾經的最愛154
使用ZeroMQ 155
RAET 的必要性156
基於流程的編程方法157
拼圖157
開啟RAET 之旅160
配置RAET 160
RAET 的架構162
總結165
第8 章擴展策略166
關於級聯166
蘿蔔白菜,各有所愛(Different folks,different strokes) 166
無須細緻化管理167
配置級聯關係168
使用多Master 實現高可用168
內置的高可用配置168
傳統的高可用方式169
同步檔案170
摻入外部數據源175
外部任務快取175
外部檔案系統178
外部Pillar 187
使用Master API 190
Salt 密鑰190
配置190
file 和Pillar roots 190
使用wheel 反應器191
基礎設施的壓力測試191
使用Minion Swarm 192
總結193
第9 章用Salt 監控系統194
監控的基礎知識194
建立一條基線194
使用Salt 讀取系統核心信息195
使用Returner 監控系統202
選定一個Returner 203
使用監控State 204
定義一個監控State 205
Web 調用監控207
使用beacon 209
監控檔案變化209
beacon 間隔210
設定告警211
在State 檔案中設定告警211
從beacon 中告警211
總結214
第10 章探索最佳實踐215
適應未來的基礎設施215
設定目錄結構216
標準目錄路徑216
.sls 與init.sls 217
淺層級與深層級218
進一步細分219
高效率SLS 219
include 與extend 219
使用模板簡化SLS 檔案223
使用內置的State 227
命名約定230
通用命名231
確切命名232
模板和變數233
嵌套變數233
在模板中引用變數234
總結235
第11 章故障排查 236
什麼情況…… 236
定位問題根源237
問題出在哪裡237
使用debug 和trace 模式243
本地使用salt-call 249
和YAML 打交道250
YAML 基礎250
YAML 特色252
YAML 排錯254
尋求社區幫助257
salt-users 郵件列表257
Salt 問題追蹤系統259
IRC 頻道#salt 262
最終社區思想262
總結263
使用模板簡化SLS 檔案223
使用內置的State 227
命名約定230
通用命名231
確切命名232
模板和變數233
嵌套變數233
在模板中引用變數234
總結235
第11 章故障排查 236
什麼情況…… 236
定位問題根源237
問題出在哪裡237
使用debug 和trace 模式243
本地使用salt-call 249
和YAML 打交道250
YAML 基礎250
YAML 特色252
YAML 排錯254
尋求社區幫助257
salt-users 郵件列表257
Salt 問題追蹤系統259
IRC 頻道#salt 262
最終社區思想262
總結263