第1章 开始使用Salt 1
1.1 Salt部署的基本架构 1
1.2 安装Salt 3
1.2.1 软件包安装方式 3
1.2.2 脚本安装方式 4
1.2.3 源码方式安装 5
1.2.4 其他发行版Linux系统安装Salt 5
1.3 配置Salt 6
1.3.1 Salt minion配置 7
1.3.2 启动Salt master和Salt minion 7
1.3.3 在master上接受minion秘钥 8
1.4 第一条命令测试 9
本章小结 12
第2章 通过Salt远程执行管理minion 13
2.1 Salt远程执行命令的组成结构 13
2.1.1 命令行选项 14
2.1.2 目标定位字符串 17
2.2 远程执行模块和函数 27
本章小结 37
第3章 编写自己的模块代码 38
3.1 理解Salt远程执行的底层原理 38
3.2 执行模块的构成结构 39
3.3 编写自己的执行模块函数 41
3.4 交叉调用Salt自带的模块函数 42
3.5 实战编写一个完整模块 47
本章小结 51
第4章 通过state模块定义主机状态 52
4.1 状态的概念以及如何撰写第一条状态 52
4.2 状态配置文件的各个要素 56
4.3 常用的状态模块用法 60
4.4 使用requisites对状态进行排序控制 66
4.5 通过state模块部署LAMP环境 72
本章小结 76
第5章 通过Jinja2模板以及Grain和Pillar扩展主机状态 77
5.1 Jinja2模板语言的基础 77
5.2 Grain和Pillar的概念及设置 80
5.3 用Jinja2配合Grain和Pillar扩展SLS配置文件 89
5.4 用Jinja2配合Grain和Pillar动态下发配置文件 95
本章小结 109
第6章 用highstate复合主机状态 110
6.1 highstate组织多个状态配置 110
6.2 用top.sls文件管理状态文件 110
6.3 状态文件的拆分和复用 116
6.4 多环境的配置和管理 131
6.5 实战案例:keepalived+Redis高可用架构 133
6.6 实战案例:MooseFS分布式文件系统部署 153
本章小结 178
第7章 SaltStack配置文件 179
7.1 Salt master配置详解 179
7.2 Salt minion配置详解 186
7.3 SaltStack参数优化 190
本章小结 191
第8章 SaltStack架构扩展 192
8.1 Salt的多master高可用架构 192
8.2 syndic方式扩展Salt的管理架构 195
8.3 Salt的无master模式 197
本章小结 208
第9章 SaltStack高级话题 209
9.1 Salt job管理 209
9.2 Salt runners系统 213
9.3 Event系统和Reactor系统 219
9.4 Salt API系统 231
本章小结 243