初识:
puppet是一种Linux、Unix、windows平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。puppet把这些系统实体称之为资源,puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。
Puppet工作方式:
puppet既可以在单机上使用,也可以以C/S结构使用.
在大规模使用puppet的情况下,通常使用C/S结构;在这种结构中puppet客户端是只运行puppet的服务器,puppet服务器端是只运行puppetmaster的服务器.
Puppet工作流程:
Puppet的具体工作流程如下:
- 客户端puppetd调用facter,facter会探测出这台主机的一些变量如主机名、内存大小、IP地址等。然后puppetd把这些信息发送到服务器端。
- 服务器端的puppetmaster检测到客户端的主机名,然后会找到manifest里面对应的node配置,然后对这段内容进行解析;facter送过来的信息可以作为变量进行处理,node牵涉到的代码才解析,其它的代码不解析;解析分几个过程:语法检查、然后会生成一个中间的伪代码,然后再把伪代码发给客户机。
- 客户端接收到伪代码之后就会执行,客户端再把执行结果发送给服务器。
- 服务器再把客户端的执行结果写入日志。
说明:Puppet后台运行的时间默认是半小时执行一次,不是很方便。可以考虑不让它在后台跑而是使用crontab来调用。这样可以精确控制每台客户端的执行时间,分散执行时间也可以减轻服务器负载。
Puppet架构:
暂时还不太理解,有待后期研究。
进阶学习资料:
《learningpuppet》
《Pro.Puppet》
需达到的学习目标:
- 利用VirtualBox和learning Puppet VM在Window7系统下搭建Puppet环境,并参照文档熟悉Puppet基本概念:http://docs.puppetlabs.com/learning/
- 学习《Pro.Puppet》,掌握更细节内容,策划一个Puppet实践场景并实现;
- 针对Puppet的学习进度,发表学习笔记,每周至少一篇。
本文转自 xxrenzhe11 51CTO博客,原文链接:http://blog.51cto.com/xxrenzhe/1195402,如需转载请自行联系原作者