作品简介

SaltStack是开源的系统自动化配置和管理工具,用于管理基础设置的轻量级工具,容易搭建,为远程管理服务器提供一种更好、更快速、更有扩展性的解决方案,部署轻松,在几分钟内可运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯。本书系统介绍SaltStack的配置、部署与二次开发方法。本书先介绍为何使用SaltStack,让读者对SaltStack有一个基本的认识,接着介绍SaltStack的基本原理以及概念,然后从系统、配置、包、进程&服务, 对salt的使用进行全方位的解析,并从一个简单负载的例子对SaltStack进行演示,再用1-2个比较变态的需求来展示SaltStack的强大功能。最后介绍SaltStack的拓展功能,以及与监控相关的示例,还介绍SaltStack二次开发,以及综合实例。本书深入浅出地讲解了SaltStack,运维与开发人员都可以从中受益。

作者:刘继伟,沈灿,赵舜东

作品目录

  • 序言
  • 前言
  • 第1章 SaltStack入门
  • 1.1 SaltStack服务架构
  • 1.2 SaltStack架构安装
  • 1.2.1 SaltStack软件依赖
  • 1.2.2 yum方式安装(采用EPEL源)
  • 1.2.3 pip方式安装
  • 1.2.4 源码安装
  • 1.2.5 salt-bootstrap安装
  • 1.3 开始SaltStck之旅
  • 1.3.1 证书管理
  • 1.3.2 日常命令参数
  • 1.4 熟悉SalStack配置文件
  • 1.4.1 Master配置文件
  • 1.4.2 Minion配置文件
  • 第2章 SaltStack组件
  • 2.1 从管理对象说起
  • 2.2 管理对象属性
  • 2.2.1 通过Minion配置文件定义Grains
  • 2.2.2 通过Grains模块定义Grains
  • 2.3 数据管理中心
  • 2.4 针对管理对象操作
  • 2.5 配置管理从这里开始
  • 2.6 执行结果处理
  • 2.7 Job管理
  • 2.8 Event和Reactor系统
  • 2.9 Renderer组件
  • 2.10 其他组件
  • 2.10.1 Mine
  • 2.10.2 Peer
  • 第3章 SaltStack实践案例
  • 3.1 环境规划
  • 3.1.1 实验环境设置
  • 3.1.2 SaltStack环境设置
  • 3.2 YAML编写技巧
  • 3.2.1 什么是YAML
  • 3.2.2 规则一:缩进
  • 3.2.3 规则二:冒号
  • 3.2.4 规则三:短横杠
  • 3.3 Jinja使用技巧
  • 3.3.1 什么是Jinja
  • 3.3.2 如何区分模板文件
  • 3.3.3 Jinja基本使用
  • 3.3.4 Jinja逻辑关系
  • 3.4 系统初始化
  • 3.4.1 DNS配置
  • 3.4.2 History记录时间
  • 3.4.3 命令操作审计
  • 3.4.4 内核参数优化
  • 3.4.5 epel仓库
  • 3.4.6 Zabbix Agent安装
  • 3.4.7 初始化环境引用
  • 3.5 Haproxy配置管理
  • 3.5.1 pkg配置
  • 3.5.2 Haproxy服务配置
  • 3.5.3 编写Haproxy安装SLS
  • 3.5.4 Haproxy业务引用
  • 3.5.5 执行Haproxy状态
  • 3.5.6 查看Haproxy状态
  • 3.6 Keepalived配置管理
  • 3.6.1 软件包准备
  • 3.6.2 编写Keepalived安装SLS
  • 3.6.3 Keepalived业务引用
  • 3.6.4 执行Keepalived状态
  • 3.6.5 Haproxy+Keepalived测试
  • 3.7 Memcached配置管理
  • 3.7.1 www用户配置
  • 3.7.2 Libevent配置
  • 3.7.3 Memcached配置
  • 3.7.4 Memcached服务
  • 3.7.5 执行Memcached状态
  • 3.8 Nginx配置管理
  • 3.8.1 PCRE模块
  • 3.8.2 Nginx模块
  • 3.8.3 Nginx配置文件
  • 3.8.4 编写Nginx服务SLS
  • 3.8.5 PHP(FastCGI)配置管理
  • 3.8.6 PHP Redis模块
  • 3.8.7 PHP Memcached模块
  • 3.9 业务应用模块
  • 3.9.1 BBS论坛案例
  • 3.9.2 修改top.sls
  • 3.9.3 执行状态
  • 3.9.4 案例扩展的思路
  • 第4章 扩展SaltStack组件
  • 4.1 扩展Grains
  • 4.1.1 理解扩展Grains流程
  • 4.1.2 扩展Grains案例
  • 4.2 扩展Module
  • 4.2.1 理解扩展Module原理
  • 4.2.2 扩展Module案例
  • 4.3 扩展state
  • 4.3.1 理解扩展state原理
  • 4.3.2 扩展state案例
  • 4.4 ext_pillar与ext_nodes
  • 4.4.1 理解ext_pillar流程
  • 4.4.2 理解ext_nodes流程和案例
  • 4.4.3 ext_pillar实际案例
  • 4.4.4 扩展ext_pillar
  • 4.5 SaltStack git文件服务器
  • 第5章 第三方调用SaltStack
  • 5.1 通过Python API调用
  • 5.1.1 Python API工作原理
  • 5.1.2 Python API介绍
  • 5.2 通过RESTful API调用
  • 5.2.1 Restful API配置环境部署
  • 5.2.2 通过Restful API实现日常操作
  • 第6章 SaltStack架构扩展
  • 6.1 无Master架构
  • 6.1.1 设置无Master运行
  • 6.1.2 关闭salt-minion
  • 6.1.3 使用salt-call执行状态
  • 6.2 多Master架构
  • 6.2.1 配置多Master
  • 6.2.2 Master数据存储
  • 6.2.3 设置Minion
  • 6.3 Salt Syndic
  • 6.3.1 Syndic配置
  • 6.3.2 高级Master配置
  • 6.3.3 Syndic测试
  • 6.3.4 Syndic是如何工作的
  • 6.3.5 Syndic的优缺点
  • 6.4 Salt SSH
  • 6.4.1 Salt Rosters
  • 6.4.2 使用Salt SSH
  • 6.4.3 基本使用
  • 6.4.4 生产实践
  • 第7章 SaltStack Web平台开发
  • 7.1 SaltStck Web平台开发流程
  • 7.1.1 确定技术栈
  • 7.1.2 做原型图
  • 7.1.3 UI设计
  • 7.2 与SaltStack联动
  • 7.3 实践
  • 7.3.1 框架搭建
  • 7.3.2 功能开发
  • 7.3.3 效果演示
  • 第8章 Hack SaltStack
  • 8.1 实现命令执行结果的自动采集与监控
  • 8.1.1 MySQL建表
  • 8.1.2 自定义returner
  • 8.1.3 通过fluent采集数据
  • 8.1.4 结果查询
  • 8.2 实现系统信息变更的自动上报
  • 8.2.1 上报系统的需求与结构
  • 8.2.2 软件选型
  • 8.2.3 系统构建
  • 8.2.4 基于Event的扩展
  • 第9章 SaltStack排错
  • 9.1 排错思路
  • 9.1.1 确定问题范围
  • 9.1.2 确保环境正常
  • 9.1.3 定位问题
  • 9.1.4 求助
  • 9.1.5 Bug修复
  • 9.2 排错实战
  • 第10章 SaltStack与运维
  • 10.1 SaltStack与自动化运维
  • 10.1.1 运维的工作内容
  • 10.1.2 运维自动化发展历程
  • 10.1.3 运维标准化、工具化
  • 10.1.4 运维Web化、平台化
  • 10.1.5 运维服务化、API化
  • 10.1.6 运维智能化、自动化
  • 10.2 SaltStack与CMDB
  • 10.2.1 信息采集&存储
  • 10.2.2 信息匹配
  • 10.2.3 资产展示
展开全部