第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 <module>.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