内容简介
第1章 Salt概览
远程执行命令
Master和Minion
Targeting Minion
运行模块方法
SLS文件树
SLS文件
使用top文件将配置绑定在一起
SLS目录组织
使用State进行配置管理
使用include块
使用requisite排序
prereq
反转requisite
扩展SLS文件
Grain、Pillar及模板基础
使用Grain来获取Minion特征数据
使用Pillar使变量集中化
通过模板动态管理文件
Jinja快速入门
总结
第2章 深入Salt内部
理解Salt配置
配置树(configuration tree)
Salt缓存
渲染器
渲染SLS文件
渲染器管道
模板文件服务
理解加载器
动态模块
执行模块
Cloud模块
深入State编译器
命令式与声明式
requisite
High State与Low State
High State
Low State
实行State化
总结
第3章 探索Salt SSH
掌握SSH
远程shell
使用Roster
纯文本Roster
其他的内置Roster
构建动态Roster
使用Salt SSH
Salt与Salt SSH
理解salt-thin agent
构建salt-thin包
部署thin包
执行thin包
使用原生SSH模式
缓存SSH连接
总结
第4章 异步管理任务
事件系统
基本介绍
事件数据结构
查看事件数据
事件命名空间
通用事件
通用云事件
Salt API事件
构建反应器
配置反应器
编写反应器
编写更复杂的反应器
使用队列系统
队列如何工作
在反应器中使用队列
总结
第5章 Salt Cloud进阶
了解Salt Cloud配置
全局配置
Provider和Profile配置
扩展配置块
构建自定义部署脚本
理解Salt Bootstrap脚本
回看遗留的部署脚本
定制部署脚本
给脚本传递参数
使用文件映射
cloud映射概览
构建自动伸缩的反应器
Cloud缓存
使用Cloud缓存事件
总结
第6章 使用Salt REST
Salt HTTP类库
为什么是Salt特定的类库
使用http.query方法
使用http.query State
理解Salt API
Salt API是什么
部署Salt API
创建SSL证书
配置认证
迈出Salt API第一步
使用webhook
安全加固
更复杂的认证
总结
第7章 理解RAET协议
比对RAET与ZeroMQ
先看看HTTP
SSH,曾经的最爱
使用ZeroMQ
RAET的必要性
基于流程的编程方法
拼图
开启RAET之旅
配置RAET
RAET的架构
总结
第8章 扩展策略
关于级联
萝卜白菜,各有所爱(Different folks,different strokes)
无须细致化管理
配置级联关系
使用多Master实现高可用
内置的高可用配置
传统的高可用方式
同步文件
掺入外部数据源
外部任务缓存
外部文件系统
外部Pillar
使用Master API
Salt密钥
配置
le和Pillar roots
使用wheel反应器
基础设施的压力测试
使用Minion Swarm
总结
第9章 用Salt监控系统
监控的基础知识
建立一条基线
使用Salt读取系统核心信息
使用Returner监控系统
选定一个Returner
使用监控State
定义一个监控State
Web调用监控
使用beacon
监控文件变化
beacon间隔
设置告警
在State文件中设置告警
从beacon中告警
总结
第10章 探索最佳实践
适应未来的基础设施
设置目录结构
标准目录路径
<module>.sls与init.sls
浅层级与深层级
进一步细分
高效率SLS
include与extend
使用模板简化SLS文件
使用内置的State
命名约定
通用命名
确切命名
模板和变量
嵌套变量
在模板中引用变量
总结
第11章 故障排查
什么情况
定位问题根源
问题出在哪里
使用debug和trace模式
本地使用salt-call
和YAML打交道
YAML基础
YAML特色
YAML排错
寻求社区帮助
salt-users邮件列表
Salt问题追踪系统
IRC频道#salt
最终社区思想
总结