描述
开 本: 16开纸 张: 胶版纸包 装: 平装是否套装: 否国际标准书号ISBN: 9787121292637
通过本书你将学到:
学习专业人士如何管理他们的基础架构,以及他们通过Salt的哪些技术来保证业务平稳运行。
理解Salt的动机,以及它们将影响你的使用方式。
从新的角度去看待那些熟知的特性,让你用更好的方式处理日常任务。
使用Salt SSH去管理那些不适合Salt传统用例的服务器。
通过这些自动化配置,可以更自动化地管理你的服务器,让服务器变得更智能。
更好地使用基于云的服务,包括如EC2、Azure及OpenStack等计算云。
学习新的RAET协议,并了解它如何改变自动化工作方式。
远程执行命令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
中文版序
I was honored to discover that my first book was considered important enough to be translated intoChinese. Salt is a powerful tool, and the knowledge that you gain from this book will help you usethat power effectively in managing your infrastructure. I look forward to seeing more people useSalt to take better control of the technological advances that we have been blessed with, and bringus closer to a better and more advanced future. Your decision to read this book brings us one stepcloser to that future, and I hope that you continue on that path.
Of course Salt will continue to grow, thanks to the tireless efforts of countless engineers. It is becauseof those people, including readers like you, that Salt has become the tool that it is. I hope that youenjoy using Salt as much as I do. I also hope that you enjoy this book as much as I enjoyed writing it.
Joseph Hall
当得知我的第一本书因为其重要性被翻译成中文时,我感到非常荣幸。Salt 是一个强大的工具,从本书中所学的知识能够帮你在管理基础设施时发挥实际效用。我期待看到越来越多的人使用Salt 去更好地掌控Salt 得天独厚的技术优势,并带给我们一个更好和更先进的未来。当你决定阅读这本书时,你已经让我们的梦想更近了一步,我希望你能一直陪着我们走下去。
当然Salt 会继续不断成长,特别需要感谢那些不懈努力的工程师们。正是因为这些人,包括像你一样的读者,让Salt 变成了我们所期待的样子。我希望你能像我一样喜欢使用Salt。也希望你能像我喜欢写这本书一样地喜欢这本书。
Joseph Hall
译者序
2012 年年底,我被一篇技术外文中所介绍的一个易用且强大的远程执行工具所吸引,由此结识了SaltStack。在之后不久和赵舜东、刘继伟等一起发起建立了中国SaltStack 用户组,从Puppet 应用高级群中“挖”来了第一批成员,开始在QQ 群、邮件列表中进行更多的经验分享和讨论交流。
2015 年3 月底,非常荣幸地得到了Mastering SaltStack 这本书的审阅机会。在审阅过程中,被Joseph Hall 的专业思维所折服,常常会感慨“原来SaltStack 可以这么玩”,更萌生了把这本优秀的SaltStack 书籍引进到国内并完成翻译的想法。
最后,诚挚表达我的感谢:
感谢omas S. Hatch,是他天才般地创造了SaltStack 并将其开源出来。
感谢Joseph Hall,在Mastering SaltStack 这本书里用易懂有趣的方式让大家获取SaltStack 底层及所蕴含的高级特性,并提供有效的实践经验。
感谢刘继伟(halfss),正是他的引荐,让我有幸可以审阅Mastering SaltStack 这本书,以及实现引进翻译的想法。
感谢吴兆松(itnihao),是他帮我联系了电子工业出版社,最终引进了这本书并交给我和冯宇来做翻译。感谢电子工业出版社的付睿等编辑为这本书付出的心力。
最后要感谢我身边的她,连续的好几个周末我都宅在家里翻译本书,而错过了之前承诺她的旅行,感谢她的理解和付出。
希望这本书能开启你新的世界,希望有更多的人加入到SaltStack 中来。Because salt goes EVERYWHERE!
推荐序
这本关于Salt 的书我期待已久。作为Salt 的创建者,我深感很多人并不了解Salt 平台的先进与强大。深入那些Salt 中鲜为人知的地域才能真正发挥惊人的作用。Salt 更强大的地方,在于如何使用反应器智能动态管理,如何使用salt-ssh 处理各种各样的场景,以及更高水准地使用Salt。这本书以易于理解的方式阐述了这些内容。我希望这本书能帮助更多的人学习到Salt 强大的特性。
可以说Joseph Hall 就是写这本书的最佳人选。他不仅仅是我亲密的伙伴,而且从非常早期就开始参与了Salt 项目的开发,包括早期的Salt State 系统设计。Joseph 是第二个为Salt 编写代码的人(仅在我之后)。他也是第一位由SaltStack 聘请的工程师。
Thomas S. Hatch
SaltStack 创始人兼CTO
评论
还没有评论。