Puppet权威指南
基本信息
作者: 王冬生
丛书名: Linux/Unix技术丛书
出版社:机械工业出版社
ISBN:9787111485988
上架时间:2014-12-25
出版日期:2015 年1月
开本:16开
版次:1-1

 

内容简介
    计算机书籍
自动化运维领域的重磅之作,Puppet领域权威的、系统的、有深度的、极具企业实战价值的著作。腾讯高级运维工程师撰写,获得了来自腾讯、百度、阿里巴巴、新浪等多家世界级互联网企业的总监级运维专家的高度认可和联袂推荐。
工欲善其事,必先利其器,在操作层面,《Puppet权威指南》从Puppet的基本功能到高级功能,再到二次开发均有详细分析,内容详尽而系统,能帮助读者全面掌握Puppet的使用;知其然,更要知其所以然,在原理层面,本书从多个层面和角度分析了Puppet的工作原理,能让读者更深入理解和使用Puppet;好的经验是无价的,在应用层面,作者将自己几年来学习和应用Puppet积累的方法、技巧、最佳实践以及解决疑难问题的秘诀都毫无保留地奉献了出来,能让读者少走弯路,事半功倍;实践出真知,在实战层面,本书给出了几个对企业很重要的、常见的综合性案例,不仅能帮助读者提高实战能力,还能给予他们解决这些问题的良好解决方案。
目录
Puppet权威指南
序 一
序 二
前 言
第一部分 基 础 篇
第1章 运维工程师的利器——自动化运维工具 2
1.1 浅谈运维工程师 2
1.1.1 运维工程师定位和职责 2
1.1.2 优秀运维工程师vs普通运维工程师 3
1.1.3 自动化运维工具 5
1.2 自动化运维工具箱 5
1.2.1 Cfengine 5
1.2.2 Chef 7
1.2.3 Puppet 7
1.3 自动化运维工具对比 10
第2章 Puppet介绍 12
2.1 DevOps介绍 12
2.2 Puppet版本介绍 13
2.2.1 Puppet开源社区版本号介绍 13
2.2.2 Puppet版本混用可行性 14
2.2.3 如何升级Puppet 14
2.2.4 Puppet发行版本介绍 15
2.3 Puppet版本运行环境和硬件要求 16
2.3.1 Puppet版本运行环境 16
2.3.2 Puppet 硬件要求 17
2.4 Puppet 工作流程 17
2.5 Puppet开发工具 19
2.5.1 Geppetto 开发环境 19
2.5.2 Vim开发环境 23
2.6 Puppet问答 23
第3章 Puppet及相关工具的配置与安装 25
3.1 Puppet 各环境的安装 25
3.1.1 Ruby不同版本对Puppet的支持状况 25
3.1.2 包管理系统和源 26
3.1.3 在RedHat企业版或CentOS上安装Puppet 29
3.1.4 在Debian和Ubuntu上安装Puppet 29
3.1.5 在微软Windows系列操作系统上安装Puppet 30
3.1.6 在Mac上安装Puppet 30
3.1.7 通过RubyGems安装Puppet 33
3.1.8 源码编译Puppet 33
3.1.9 源码打包RPM 35
3.2 版本控制工具安装与配置 36
3.2.1 Subversion安装与配置 36
3.2.2 Git安装与配置 38
3.2.3 SVN与Git的4点区别 39
3.3 DNS安装与配置 40
第4章 Puppet目录结构、配置文件和命令详解 42
4.1 源码与主配置文件的目录结构 42
4.2 Puppet主要配置文件介绍 45
4.2.1 puppet.conf介绍 45
4.2.2 auth.conf介绍 49
4.2.3 namespaceauth.conf 介绍 51
4.2.4 autosign.conf介绍 52
4.2.5 fileserver.conf介绍 53
4.2.6 tagmail.conf 介绍 54
4.3 Puppet命令详解 54
4.3.1 Puppet命令的前世今生 55
4.3.2 如何掌握Puppet命令 55
4.3.3 puppet master 介绍 57
4.3.4 puppet agent 介绍 59
4.3.5 puppet cert 介绍 62
4.3.6 puppet apply 介绍 64
4.3.7 puppet module 介绍 65
4.3.8 puppet resource 介绍 67
4.3.9 puppet describe 介绍 68
4.3.10 puppet doc 介绍 69
4.3.11 puppet parser 介绍 71
4.3.12 puppet 帮助命令介绍 72
4.3.13 puppet filebucket 介绍 73
4.3.14 puppet file 介绍 74
4.3.15 puppet kick 介绍 74
第5章 通过Puppet 构建主机 77
5.1 Agent首次访问Master配置过程 77
5.1.1 创建site.pp文件和目录 77
5.1.2 Master配置 78
5.1.3 防火墙配置 79
5.1.4 Agent配置 80
5.2 manifests和modules目录介绍 82
5.2.1 manifests目录介绍 83
5.2.2 modules目录介绍 86
5.3 class类的介绍 88
5.3.1 定义无参数class类 88
5.3.2 定义有参数class类 89
5.4 继承 89
5.4.1 节点继承 89
5.4.2 类继承 90
5.5 Puppet构建主机 90
5.5.1 基础模块目录结构 91
5.5.2 代码文件介绍 92
5.5.3 site.pp加载配置文件 93
5.6 Puppet多环境部署 94
第二部分 进 阶 篇
第6章 Puppet语言详解 98
6.1 变量和变量作用域 98
6.1.1 什么是变量 99
6.1.2 变量作用域 100
6.1.3 Facter变量 103
6.1.4 内置变量 104
6.2 数据类型 104
6.2.1 字符串类型 104
6.2.2 数值类型 105
6.2.3 数组 106
6.2.4 哈希类型 107
6.2.5 布尔类型 108
6.2.6 正则表达式 108
6.2.7  undef 110
6.3 条件判断语句 111
6.3.1 if…elsif…else条件语句 111
6.3.2 case语句 112
6.3.3 selector语句 113
6.4 Puppet函数介绍 113
6.4.1 常用系统函数 114
6.4.2 其他系统函数 118
6.5 Puppet tag 119
6.6 Puppet关键字 119
6.7 Puppet编程规范 120
6.7.1 manifests和modules中的间距、缩进与空白 120
6.7.2 注释 121
6.7.3 变量规范 121
6.7.4 资源规范 122
6.7.5 条件语句规范 125
6.7.6 class类规范 126
6.7.7 标识符命名规范 128
6.8 Puppet文件的导入、命名空间与自动加载 128
6.8.1 Puppet文件的导入 128
6.8.2 Puppet命名空间与自动装载 129
第7章 Puppet 资源详解 132
7.1 Puppet资源 132
7.1.1 Puppet资源分类 133
7.1.2 资源与Puppet协同工作 133
7.1.3 资源的组成 133
7.2 Puppet常用资源介绍 134
7.2.1 file与filebucket资源 135
7.2.2  host资源 140
7.2.3 user资源 141
7.2.4 group资源 144
7.2.5 package资源 145
7.2.6 service资源 148
7.2.7 exec资源 150
7.2.8 cron资源 153
7.2.9 notify资源 154
7.3 资源公有属性 155
7.3.1 资源公有属性应用场景 156
7.3.2 before和require资源公有属性 157
7.3.3 notify和subscire资源公有属性 158
7.3.4 资源公有属性的其他描述方式 159
7.3.5 定义Chaining 160
7.3.6 stage资源公有属性与stage资源 162
7.3.7 audit审计 163
7.4 默认资源 163
7.5 Puppet虚拟资源 164
7.5.1 虚拟资源应用场景 164
7.5.2 虚拟资源 165
7.6 Puppet资源的导出 167
7.6.1 环境的配置 167
7.6.2 资源导出案例 168
7.6.3 过期资源清理 171
第8章 Puppet ERB模板详解 172
8.1 ERB模板应用场景 172
8.2 ERB语言 173
8.2.1 初识ERB模板 173
8.2.2 变量 174
8.2.3 if…elsif…else条件语句 175
8.2.4 each循环 177
8.2.5 函数 178
8.3 通过ERB模板配置Apache虚拟主机 179
第9章 走进Facter 182
9.1 Facter简介 182
9.1.1 Facter版本 183
9.1.2 Facter参数与应用 183
9.1.3 Facter与Puppet结合 185
9.2 Facter常用变量 185
9.2.1 CPU相关变量 186
9.2.2 内存与swap相关变量 186
9.2.3 网络接口与硬件地址相关变量 188
9.2.4 系统发行版本变量与kernel版本相关变量 189
9.2.5 SELinux相关变量 190
9.3 扩展Facter 191
9.3.1 扩展Facter的变量 191
9.3.2 External Facts外部扩展变量 193
9.4 编写与分发Facter的扩展 196
第三部分 高 级 篇
第10章 Puppet高级功能 200
10.1 ENC介绍 200
10.1.1 ENC的配置 201
10.1.2 ENC案例 203
10.2 Ruby DSL介绍 205
10.2.1 如何使用Ruby DSL 206
10.2.2 Ruby DSL案例 206
10.3 Puppet的关系图 208
10.3.1 DOT语言 209
10.3.2 Graphviz的安装 210
10.3.3 Puppet与Graphviz结合生成关系图 210
10.4 puppetlabs-stdlib详述 212
10.5 Puppet扩展 216
10.5.1 Puppet扩展的目录结构 216
10.5.2 Puppet函数扩展 217
10.5.3 Puppet类型与提供者 220
第11章 Puppet集群技术 224
11.1 Master单机瓶颈解决方案 224
11.2 Mongrel模式 227
11.3 Phusion Passenger 231
11.3.1 Apache + Passenger 231
11.3.2 Nginx + Passenger 234
11.4 Puppet集群介绍 236
11.4.1 为什么建立Puppet集群 236
11.4.2 建立Puppet集群的场景 236
11.4.3 集群负载均衡解决方案 237
11.5 Puppet CA均衡负载 239
第12章 报告系统 241
12.1 报告系统入门 241
12.2 报告处理器 243
12.3 自定义报告处理器 247
12.3.1 log处理器源码分析 247
12.3.2 自定义报告处理器 248
12.3.3 个性化处理器 250
第13章 Puppet Web GUI 251
13.1 Puppet Dashboard 安装与升级 252
13.2 配置Dashboard 255
13.3 Dashboard应用场景 259
13.4 Dashboard与Nginx提升性能 264
第14章 PuppetDB数据仓库 266
14.1 PuppetDB环境安装 266
14.1.1 PuppetDB辅助环境安装 267
14.1.2 PuppetDB环境安装与升级 268
14.2 PuppetDB与Puppet结合配置 270
14.2.1 数据库配置 270
14.2.2 PuppetDB配置 271
14.2.3 Puppet配置 275
14.3 PuppetDB API 277
14.3.1 PuppetDB API检索结构 277
14.3.2 PuppetDB API检索语句 278
14.4 PuppetDB 问答 285
第15章 Marionette Collective框架应用 287
15.1 MCollective介绍 288
15.2 中间件介绍 290
15.2.1 ActiveMQ介绍 291
15.2.2 RabbitMQ介绍 291
15.3 MCollective环境的安装与配置 291
15.3.1 MCollective安装 292
15.3.2 MCollective配置 294
15.4 如何使用MCollective 301
15.4.1 MCollective基础命令 301
15.4.2 MCollective插件应用 304
15.4.3 通过MCollective管理Puppet Agent 305
第四部分 应 用 篇
第16章 HAProxy构建Puppet集群实践 308
16.1 HAProxy 简介 308
16.2 HAProxy初始化 310
16.3 HAProxy构建Puppet 312
16.3.1 利用HAProxy扩展Puppet集群 313
16.3.2 Puppet的升级 314
第17章 Puppet管理SSO实践 317
17.1 SSO介绍 317
17.1.1 什么是SSO 317
17.1.2 SSO系统工作流程图 318
17.1.3 SSO系统架构 318
17.2 通过Puppet管理与运营SSO系统 320
17.2.1 Puppet系统初始化 321
17.2.2 Puppet配置管理环境的初始化 323
第18章 Puppet快速构建企业内部网实践 335
18.1 Puppet初始化 335
18.2 Puppet辅助工具 339
18.2.1 Puppet Forge 339
18.2.2 Example42 340
18.3 快速构建企业内部网 342
18.3.1 企业内部网介绍 342
18.3.2 构建企业内部网 343

Puppet权威指南的更多相关文章

  1. JavaScript权威指南 - 函数

    函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...

  2. JavaScript权威指南 - 对象

    JavaScript对象可以看作是属性的无序集合,每个属性就是一个键值对,可增可删. JavaScript中的所有事物都是对象:字符串.数字.数组.日期,等等. JavaScript对象除了可以保持自 ...

  3. JavaScript权威指南 - 数组

    JavaScript数组是一种特殊类型的对象. JavaScript数组元素可以为任意类型,最大容纳232-1个元素. JavaScript数组是动态的,有新元素添加时,自动更新length属性. J ...

  4. 《Ansible权威指南》笔记(3)——Ad-Hoc命令集,常用模块

    五.Ad-Hoc命令集1.Ad-Hoc命令集通过/usr/bin/ansible命令实现:ansible <host-pattern> [options]    -v,--verbose  ...

  5. 《Ansible权威指南》笔记(1)——安装,ssh密钥登陆,命令

    2016-12-23 读这本<Ansible权威指南>学习ansible,根据本书内容和网上的各种文档,以及经过自己测试,写出以下笔记.另,这本书内容很好,但印刷错误比较多,作者说第二版会 ...

  6. 读《Android编程权威指南》

    因为去年双十二购买了一折的<Android 编程权威指南(第一版)>,在第二版出来后图灵社区给我推送了第二版的优惠码,激动之余就立马下单购买电子书,不得不说Big Nerd Ranch G ...

  7. maven权威指南学习笔记(五)—— POM

    1. 简介 Archetype插件通过 pom.xml 文件创建了一个项目.这就是项目对象模型 (POM),一个项目的声明性描述. 当Maven运行一个目标的时候,每个目标都会访问定 义在项目POM里 ...

  8. maven权威指南学习笔记(一)——简介

    maven是什么?有什么用? Maven是一个项目管理工具,它包含了     一个项目对象模型 (Project Object Model),     一组标准集合,     一个项目生命周期(Pro ...

  9. 《javascript权威指南》读书笔记——第二篇

    <javascript权威指南>读书笔记——第二篇 金刚 javascript js javascript权威指南 今天是今年的196天,分享今天的读书笔记. 第2章 词法结构 2.1 字 ...

随机推荐

  1. MongoDB在实际项目中的使用

    MongoDB简介 MongoDB是近些年来流行起来的NoSql的代表,和传统数据库最大的区别是支持文档型数据库. 当然,现在的一些数据库通过自定义复合类型,可变长数组等手段也可以模拟文档型数据库. ...

  2. Adb connection Error:远程主机强迫关闭了一个现有的连接

    在用手机调试程序时,有时会出现“Adb connection Error:远程主机强迫关闭了一个现有的连接”的错误. 出现这种错误时,可以按照以下步骤解决: (1)运行cmd.exe,并将目录CD到\ ...

  3. 【Java每日一题】20161117

    package Nov2016; public class Ques1117 { public static void main(String[] args) { Sub sub = new Sub( ...

  4. input为disabled提交后得不到该值的解决方法

    input的字段当为diabled时时无法获取数值得,所以最近不要用这个,我们可以用readonly带替代,即可解决这类问题 放在form表单中提交后得不到该值. 将disabled=”disable ...

  5. CenOS下firefox browser (火狐浏览器)无法播放网页音乐的解决方法

    新装载的Firefox或许无法播放网页音频,解决方法如下: 1. 下载并安装 flashplayer插件&&下载网址:https://get.adobe.com/flashplayer ...

  6. coreseek (sphinx)+ Mysql + Thinkphp搭建中文搜索引擎详解

      一, 前言    1,研究coreseek的动机 我有一个自己的笔记博客,经常在上面做一些技术文章分析.在查询一些文章的时候,以前只能将要查询的内容去mysql中用like模糊匹配.在文章多了的情 ...

  7. Thinkphp各种方法知识图谱

    A方法:用于实例化控制器 ThinkPHP函数详解:A方法 B方法:执行某个行为 I方法(其命名来自于英文Input):获取输入参数 支持过滤和默认值 ThinkPHP函数详解:I方法 D方法:D函数 ...

  8. C#开发可以可视化操作的windows服务

    使用C#开发自定义windows服务是一件十分简单的事.那么什么时候,我们需要自己开发windows服务呢,就是当我们需要计算机定期或者一 直执行我们开发的某些程序的时候.我经常看到许多人开发的win ...

  9. 编写高性能Javascript代码的若干建议

    多年来,Javascript一直在web应用开发中占据重要的地位,但是很多开发者往往忽视一些性能方面的知识,特别是随着计算机硬件的不断升级,开发者越发觉得Javascript性能优化的好不好对网页的执 ...

  10. JS中数组去除重复的方法

    function unique(arr) { var result = [], hash = []; for (var i = 0, elem; (elem = arr[i]) != null; i+ ...