Puppet权威指南

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

时间: 2024-11-06 19:33:20

Puppet权威指南的相关文章

JavaScript权威指南第13章 web浏览器中的javascript

13.1 客户端javascript window对象是所有的客户端javascript特性和api的主要接入点.表示浏览器的一个窗口,可以通过window对象来引用它. window 的方法 alert() prompt() confirm() 13.2 在html里嵌入javascript 4种方法: 内联:放置在<script></script>标签之中 外部引入:<script src="   "></script> html程序

【vue.js权威指南】读书笔记(第一章)

最近在读新书<vue.js权威指南>,一边读,一边把笔记整理下来,方便自己以后温故知新,也希望能把自己的读书心得分享给大家. [第1章:遇见vue.js] vue.js是什么? vue.js不是一个框架-它只聚焦视图层,是一个用来构建数据驱动的Web界面的库.Vue.js通过简单的API来提供高校的数据绑定和灵活的组件系统 vue.js的特性 轻量级:体积非常小,而且不依赖其他基础库 数据绑定:对于一些富交互,状态机类似的前端UI界面,数据绑定非常简单,方便 指令:类似与AJ,可以使用v-*的

maven权威指南学习笔记(五)&mdash;&mdash; POM

Archetype插件通过 pom.xml 文件创建了一个项目.这就是项目对象模型 (POM),一个项目的声明性描述. 当Maven运行一个目标的时候,每个目标都会访问定 义在项目POM里的信息. 这个POM文件在maven1中是project.xml,在maven2时改为pom.xml. <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.

maven权威指南学习笔记(一)&mdash;&mdash;简介

maven是什么?有什么用? Maven是一个项目管理工具,它包含了     一个项目对象模型 (Project Object Model),     一组标准集合,     一个项目生命周期(ProjectLifecycle),     一个依赖管理系统(Dependency Management System),     用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑. 当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后 Mav

《Android编程权威指南》-读书笔记(三)Git初探

<Android编程权威指南>-读书笔记(三)Git初探 版本控制-Git 为什么要使用版本控制 什么是版本控制?我为什么要关心它呢?版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统.在本书所展示的例子中,我们仅对保存着软件源代码的文本文件作版本控制管理,但实际上,你可以对任何类型的文件进行版本控制. 如果你是位图形或网页设计师,可能会需要保存某一幅图片或页面布局文件的所有修订版本(这或许是你非常渴望拥有的功能).采用版本控制系统(VCS)是个明智的选择.有了它你就

《Javascript权威指南》学习笔记之十一:处理字符串---String类和正则表达式

一.正则表达式的基本语法 1.概念:正则表达式由普通字符和特殊字符(元字符)组成的文本模式,该模式描述在查找字符串主体时待匹配的一个或者多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配. 普通字符包括所有的大小写字母字符.所有数字.所有标点符号及一些特殊符号.普通字符本身可以组成一个正则表达式,也可以和元字符组合组成一个正则表达式:而元字符则具有特殊的含义,包括().[].{}./.^.$.*.+.?...|.-.?:.?=.?! 2.基本语法 3.优先权含义 二.使用

笔记《Hbase 权威指南》

为什么要用Hbase- Hbase的诞生是因为现有的关系型数据库已经无法在硬件上满足疯狂增长的数据了,而且因为需要实时的数据提取Memcached也无法满足- Hbase适合于无结构或半结构化数据,适合于schema变动的情况- Hbase天生适合以时间轴做查询 Werner Vogels,可以关注一下他的博客(Amazon的CTO) 分布式计算系统的CAP定理:在理論計算機科學中, CAP定理(CAP theorem), 又被稱作 布魯爾定理(Brewer's theorem), 它指出對於一

JavaScript权威指南 - 函数

函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对于其他面向对象语言,在JavaScript中的函数是特殊的,函数即是对象.JavaScript可以把函数赋值给变量,或者作为参数传递给其他函数,甚至可以给它们设置属性等. JavaScript的函数可以嵌套在其他函数中定义,这样定义的函数就可以访问它们外层函数中的任何变量.这也就是所谓的"闭包&qu

读《Android开发权威指南》

因为去年双十二购买了一折的<Android 开发权威指南(第一版)>,在第二版出来后图灵社区给我推送了第二版的优惠码,激动之余就立马下单购买电子书,不得不说Big Nerd Ranch Guide的书都特别棒,本书详细地介绍了Android开发的相关内容,而且使用的IDE是Android Studio这款比Eclipse先进多的工具,相比之下国内大部分书还在介绍基于Eclipse的Android开发环境搭建 orz,拜托进取下好不好.在暑假时候,一个人根据这本书自学了Android开发,虽然目