天天看点

《Puppet实战手册》——导读

《Puppet实战手册》——导读

**

前言

it运维领域正在进行一场革命。新一代的配置管理工具可以在几秒内完成大量服务器的构建(配置)和整个网络自动化。为了充分利用云计算的强大功能,并且建立可靠、可扩展、安全、高性能的系统,拥有puppet这样的工具是必不可少的。

本书不仅讲解了puppet的基础知识,而且深入探讨了puppet的所有强大功能,详细展示了如何解决现实中的各种问题和应用场景。每一步操作都完整地展示了需要录入的命令,并且每一个技巧都有完整的代码示例。

本书带领读者从puppet的基本知识开始,完整、专业地讲解puppet的最新和最先进的功能、社区的最佳实践、优秀的配置清单(manifest)的编写、扩展性和性能,以及通过添加定制的提供者(provider)和资源(resource)来扩展puppet的方法。

本书还包含来自生产系统环境的真实示例,以及一些世界上最大的puppet用户群所使用的技巧。书中会展示利用puppet来做事的不同方法,并指出这些方法的优点和缺点。

本书的组织结构使读者在任何时候都可以深入到某个技巧进行尝试,而无须通读全书。每个主题都有提供更多信息的链接和参考阅读,读者可以根据自己的需要进一步自己探索。无论读者的pupept经验水平如何,从简单的工作流程提示到更高级的高性能puppet架构,这里都有合适的内容。

作为一名devops顾问,我极力去编写这种对我日常工作有帮助的书。我希望它能激励每一名读者去学习、去尝试,并将自己最新的创意快速运用到这个令人激动和快速发展的领域中。

第1章展示了第一次安装puppet的方法,包括安装puppet的指令、创建第一个清单、配合puppet使用版本控制、基于git构建分布式puppet架构、编写脚本让puppet清单生效、自动运行puppet、用rake来引导机器和部署变更,以及使用git钩子(hook)实现清单的自动语法检查。

第2章涵盖了编写优秀的puppet代码的方方面面,包括如何使用puppet社区风格、通过puppet-lint检查清单、用模块的方式组织清单、采用标准的命名和风格规范、使用内联模板、使用选择器和case语句、字符串操作,以及采用迭代器、条件语句和正则表达式。

第3章深入探讨puppet,提高代码质量和可用性的特殊功能细节,包括数组和定义、根据依赖关系排序资源、继承节点和类、传递参数给类、覆盖参数、从环境变量中读取信息、编写可复用的清单、使用标签(tag)和运行阶段。

第4章处理一些系统管理员最常见的任务,包括管理配置文件、使用augeas、从代码片段和模板生成文件、管理第三方软件仓库、使用gnupg加密puppet中的机密数据,以及从源代码构建软件包。

第5章阐释了什么是虚拟资源,以及它们如何帮助用户管理不同机器上的用户和软件包的不同组合,并展示了如何使用puppet的资源调度和审计功能。

第6章专注于可能需要puppet管理的某些特定的应用程序,包括apache和nginx、mysql及ruby的完整技巧。

第7章通过vagrant和ec2实例扩展puppet的能力(在云上的虚拟机和在桌面系统上)来管理虚拟机。此外,还展示了如何用haproxy设置负载均衡,如何利用iptables设置防火墙,如何利用nfs设置网络文件系统,如何利用heartbeat设置高可用服务。

第8章着眼于puppet周边已经成熟的工具,包括hiera、facter和rspec-puppet,还介绍了一些高级主题,包括编写自己的资源类型、提供者和外部节点分类器(enc)。

第9章涵盖了puppet报告自己做了些什么的信息和系统的状态的方法,包含报告、日志、调试消息、依赖关系图、测试和空运行(dry-running)清单,以及puppet常见错误消息的排查指南。

**[第1章 puppet基础设施

<a href="https://yq.aliyun.com/articles/92971">1.2 安装puppet</a>

<a href="https://yq.aliyun.com/articles/92975">1.3 创建一个配置清单</a>

<a href="https://yq.aliyun.com/articles/92982">1.4 利用git管理配置清单</a>

<a href="https://yq.aliyun.com/articles/92990">1.5 创建去中心化puppet架构</a>

<a href="https://yq.aliyun.com/articles/92997">1.6 编写papply脚本</a>

<a href="https://yq.aliyun.com/articles/93005">1.7 使用cron运行puppet</a>

<a href="https://yq.aliyun.com/articles/93012">1.8 利用rake部署变更</a>

<a href="https://yq.aliyun.com/articles/93022">1.9 利用rake引导puppet运行</a>

<a href="https://yq.aliyun.com/articles/93030">1.10 利用git钩子自动进行语法检查</a>

**[第2章 puppet语言和风格

<a href="https://yq.aliyun.com/articles/93053">2.2 使用社区推荐的puppet风格</a>

<a href="https://yq.aliyun.com/articles/93056">2.3 使用puppet-lint检查配置清单</a>

<a href="https://yq.aliyun.com/articles/93062">2.4 使用模块</a>

<a href="https://yq.aliyun.com/articles/93066">2.5 使用标准的命名约定</a>

<a href="https://yq.aliyun.com/articles/93071">2.6 使用内联模板</a>

<a href="https://yq.aliyun.com/articles/93075">2.7 数组中多个元素的遍历</a>

<a href="https://yq.aliyun.com/articles/93081">2.8 编写功能强大的条件语句</a>

<a href="https://yq.aliyun.com/articles/93086">2.9 在if语句中使用正则表达式</a>

<a href="https://yq.aliyun.com/articles/93093">2.10 使用选择器和case语句</a>

<a href="https://yq.aliyun.com/articles/93099">2.11 使用in运算符</a>

<a href="https://yq.aliyun.com/articles/93106">2.12 使用正则表达式进行替换</a>

上一篇: 分库分表