内容简介
第一部分 基础篇
第1章 运维工程师的利器——自动化运维工具
1.1 浅谈运维工程师
1.1.1 运维工程师定位和职责
1.1.2 优秀运维工程师vs普通运维工程师
1.1.3 自动化运维工具
1.2 自动化运维工具箱
1.2.1 Cfengine
1.2.2 Chef
1.2.3 Puppet
1.3 自动化运维工具对比
第2章 Puppet介绍
2.1 DevOps介绍
2.2 Puppet版本介绍
2.2.1 Puppet 开源社区版本号介绍
2.2.2 Puppet版本混用可行性
2.2.3 如何升级Puppet
2.2.4 Puppet发行版本介绍
2.3 Puppet版本运行环境和硬件要求
2.3.1 Puppet版本运行环境
2.3.2 Puppet硬件要求
2.4 Puppet工作流程
2.5 Puppet开发工具
2.5.1 Geppetto开发环境
2.5.2 Vim开发环境
2.6 Puppet问答
第3章 Puppet及相关工具的配置与安装
3.1 Puppet各环境的安装
3.1.1 Ruby不同版本对Puppet的支持状况
3.1.2 包管理系统和源
3.1.3 在RedHat企业版或CentOS上安装Puppet
3.1.4 在Debian和Ubuntu上安装Puppet
3.1.5 在微软Windows系列操作系统上安装Puppet
3.1.6 在Mac上安装Puppet
3.1.7 通过RubyGems安装Puppet
3.1.8 源码编译Puppet
3.1.9 源码打包RPM
3.2 版本控制工具安装与配置
3.2.1 Subversion安装与配置
3.2.2 Git安装与配置
3.2.3 SVN与Git的4点区别
3.3 DNS安装与配置
第4章 Puppet目录结构、配置文件和命令详解
4.1 源码与主配置文件的目录结构
4.2 Puppet主要配置文件介绍
4.2.1 puppet.conf介绍
4.2.2 auth.conf介绍
4.2.3 namespaceauth.conf介绍
4.2.4 autosign.conf介绍
4.2.5 fileserverconf介绍
4.2.6 tagmail.conf介绍
4.3 Puppet命令详解
4.3.1 Puppet命令的前世今生
4.3.2 如何掌握Puppet命令
4.3.3 puppet master介绍
4.3.4 puppet agent介绍
4.3.5 puppet cert介绍
4.3.6 puppet apply介绍
4.3.7 puppet module介绍
4.3.8 puppet resource介绍
4.3.9 puppet describe介绍
4.3.10 puppet doc介绍
4.3.11 puppet parser介绍
4.3.12 puppet帮助命令介绍
4.3.13 puppet filebucket介绍
4.3.14 puppet file介绍
4.3.15 puppet kick介绍
第5章 通过Puppet构建主机
5.1 Agent首次访问Master配置过程
5.1.1 创建site.pp文件和目录
5.1.2 Master配置
5.1.3 防火墙配置
5.1.4 Agent配置
5.2 manifests和modules目录介绍
5.2.1 manifests目录介绍
5.2.2 modules目录介绍
5.3 class类的介绍
5.3.1 定义无参数class类
5.3.2 定义有参数class类
5.4 继承
5.4.1 节点继承
5.4.2 类继承
5.5 Puppet构建主机
5.5.1 基础模块目录结构
5.5.2 代码文件介绍
5.5.3 site.pp加载配置文件
5.6 Puppet多环境部署
第二部分 进阶篇
第6章 Puppet语言详解
6.1 变量和变量作用域
6.1.1 什么是变量
6.1.2 变量作用域
6.1.3 Facter变量
6.1.4 内置变量
6.2 数据类型
6.2.1 字符串类型
6.2.2 数值类型
6.2.3 数组
6.2.4 哈希类型
6.2.5 布尔类型
6.2.6 正则表达式
6.2.7 undef
6.3 条件判断语句
6.3.1 if...elsif...else条件语句
6.3.2 case语句
6.3.3 selector语句
6.4 Puppet函数介绍
6.4.1 常用系统函数
6.4.2 其他系统函数
6.5 Puppet tag
6.6 Puppet关键字
6.7 Puppet编程规范
6.7.1 manifests和modules中的间距、缩进与空白
6.7.2 注释
6.7.3 变量规范
6.7.4 资源规范
6.7.5 条件语句规范
6.7.6 class类规范
6.7.7 标识符命名规范
6.8 Puppet文件的导入、命名空间与自动加载
6.8.1 Puppet文件的导入
6.8.2 Puppet命名空间与自动装载
第7章 Puppet资源详解
7.1 Puppet资源
7.1.1 Puppet资源分类
7.1.2 资源与Puppet协同工作
7.1.3 资源的组成
7.2 Puppet常用资源介绍
7.2.1 file与filebucket资源
7.2.2 host资源
7.2.3 user资源
7.2.4 group资源
7.2.5 package资源
7.2.6 service资源
7.2.7 exec资源
7.2.8 cron资源
7.2.9 notify资源
7.3 资源公有属性
7.3.1 资源公有属性应用场景
7.3.2 before和require资源公有属性
7.3.3 notify和subscire资源公有属性
7.3.4 资源公有属性的其他描述方式
7.3.5 定义Chaining
7.3.6 stage资源公有属性与stage资源
7.3.7 audit审计
7.4 默认资源
7.5 Puppet虚拟资源
7.5.1 虚拟资源应用场景
7.5.2 虚拟资源
7.6 Puppet资源的导出
7.6.1 环境的配置
7.6.2 资源导出案例
7.6.3 过期资源清理
第8章 Puppet ERB模板详解
8.1 ERB模板应用场景
8.2 ERB语言
8.2.1 初识ERB模板
8.2.2 变量
8.2.3 if...elsif...else条件语句
8.2.4 each循环
8.2.5 函数
8.3 通过ERB模板配置Apache虚拟主机
第9章 走进Facter
9.1 Facter简介
9.1.1 Facter版本
9.1.2 Facter参数与应用
9.1.3 Facter与Puppet结合
9.2 Facter常用变量
9.2.1 CPU相关变量
9.2.2 内存与swap相关变量
9.2.3 网络接口与硬件地址相关变量
9.2.4 系统发行版本变量与kernel版本相关变量
9.2.5 SELinux相关变量
9.3 扩展Facter
9.3.1 扩展Facter的变量
9.3.2 External Facts外部扩展变量
9.4 编写与分发Facter的扩展
第三部分 高级篇
第10章 Puppet高级功能
10.1 ENC介绍
10.1.1 ENC的配置
10.1.2 ENC案例
10.2 RubyDSL介绍
10.2.1 如何使用RubyDSL
10.2.2 RubyDSL案例
10.3 Puppet的关系图
10.3.1 DOT语言
10.3.2 Graphviz的安装
10.3.3 Puppet与Graphviz结合生成关系图
10.4 puppetlabs-stdlib详述
10.5 Puppet扩展
10.5.1 Puppet扩展的目录结构
10.5.2 Puppet函数扩展
10.5.3 Puppet类型与提供者
第11章 Puppet集群技术
11.1 Master单机瓶颈解决方案
11.2 Mongrel模式
11.3 Phnusion Passenger
11.3.1 Apache+Passenger
11.3.2 Nginx+Passenger
11.4 Puppet集群介绍
11.4.1 为什么建立Puppet集群
11.4.2 建立Puppet集群的场景
11.4.3 集群负载均衡解决方案
11.5 Puppet CA均衡负载
第12章 报告系统
12.1 报告系统入门
12.2 报告处理器
12.3 自定义报告处理器
12.3.1 log处理器源码分析
12.3.2 自定义报告处理器
12.3.3 个性化处理器
第13章 Puppet Web GUI
13.1 PuppetDashboard安装与升级
13.2 配置Dashboard
13.3 Dashboard应用场景
13.4 Dashboard与Nginx提升性能
第14章 PuppetDB数据仓库
14.1 PuppetDB环境安装
14.1.1 PuppetDB辅助环境安装
14.1.2 PuppetDB环境安装与升级
14.2 PuppetDB与Puppet结合配置
14.2.1 数据库配置
14.2.2 PuppetDB配置
14.2.3 Puppet配置
14.3 PuppetDB API
14.3.1 PuppetDBAPI检索结构
14.3.2 PuppetDBAPI检索语句
14.4 PuppetDB问答
第15章 Marionette Collective框架应用
15.1 MCollective介绍
15.2 中间件介绍
15.2.1 ActiveMQ介绍
15.2.2 RabbitMQ介绍
15.3 MCollective环境的安装与配置
15.3.1 MCollective安装
15.3.2 MCollective配置
15.4 如何使用MCollective
15.4.1 MCollective基础命令
15.4.2 MCollective插件应用
15.4.3 通过MCollective管理PuppetAgent
第四部分 应用篇
第16章 HAProxy构建Puppet集群实践
16.1 HAProxy简介
16.2 HAProxy初始化
16.3 HAProxy构建Puppet
16.3.1 利用HAProxy扩展Puppet集群
16.3.2 Puppet的升级
第17章 Puppet管理SSO实践
17.1 SSO介绍
17.1.1 什么是SSO
17.1.2 SSO系统工作流程图
17.1.3 SSO系统架构
17.2 通过Puppet管理与运营SSO系统
17.2.1 Puppet系统初始化
17.2.2 Puppet配置管理环境的初始化
第18章 Puppet快速构建企业内部网实践
18.1 Puppet初始化
18.2 Puppet辅助工具
18.2.1 Puppet Forge
18.2.2 Example42
18.3 快速构建企业内部网
18.3.1 企业内部网介绍
18.3.2 构建企业内部网