分类:
2010-08-16 17:28:58
Puppet是一个自动化配置管理系统工具,为C/S结构,星状模型,由server端对client端进行管理,它提供一套语法规则(继承于Ruby)用于描述服务器应处于的状态,并利用facter(继承于Ruby)获取系统状况。在系统管理员根据需求定制了相应的状态后,puppet负责使服务器收敛至指定状态。
Puppet和一般意义上的服务器集群命令执行是不同的,后者只是一次性操作,而Puppet所作的工作是让系统保持在你所期望的某种状态并一直维持下去。也就是说,puppet适用于重复性的工作,比喻检测某个用户或文件状态并保证其存在、部署crond任务、或者你配置文件里面要求ssh服务必须开启. 假如不小心ssh服务被关闭了,那么puppet下一次执行的时候(默认30分钟检测一次),puppet会发现这个异常,然后会开启 ssh 服务. 以使系统状态和配置文件保持一致,但在某些非重复性需求上,puppet也许不是最佳选择,例如突然要求统计各机器内存使用情况。
puppet能保存所有服务器的配置情况,使用场合主要是大规模服务器管理领域(500+),Google就使用puppet来管理上万台MAC机了。
puppet有自己的语法,它把系统里面的用户,软件包,服务、文件等看作是”资源”,然后以”类”的方式组合起来。它支持定义变量、条件语句,以及继承、数组、函数,另外puppet还有自己独特的语法结构,叫做”definitions”, 通过 definitions 可以把多个资源包装成一个资源,或者把一个资源包装成一个模型,便于使用。
Puppet是强大的自动化配置管理工具,功能丰富,并且在不断升级中,最近版本是0.26了,又相比较cfengine而言又较为简单,文档也较多,学习成本较低,部署、迁移方便,实为SA简化工作,提供效率而不可多得的神兵利器!