《精通SaltStack》由SaltStack 公司资深云集成工程师Joseph Hall 编写,《精通SaltStack》对应Salt2015.5 版本,事无巨细且通俗易懂地讲解了Salt 的内部传输机制、异步任务系统、Salt SSH、Salt Cloud、Rest API 等各个子系统,并详细讲解了如何扩展Salt,如何使用Salt Cloud 完成自动水平扩展等。
内容简介
《精通SaltStack》由SaltStack 公司资深云集成工程师Joseph Hall 编写,全书共11 个章节。《精通SaltStack》对应Salt2015.5 版本,事无巨细且通俗易懂地讲解了Salt 的内部传输机制、异步任务系统、Salt SSH、Salt Cloud、Rest API 等各个子系统,并详细讲解了如何扩展Salt,如何使用Salt Cloud 完成自动水平扩展等。作者同时分享了在使用Salt 时的最佳经验,让读者可以快速了解Salt 核心,做到融会贯通并灵活运用到实际工作中。
《精通SaltStack》介绍了一些Salt 更先进的特性,能够帮助管理服务器组并希望了解如何添加新功能和扩展他们的工具集的专业人士。
作者简介
从最初的技术支持到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
总结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
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