puppet是一种Linux、Unix、windows平台的集中配置管理系统。puppet使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。puppet把这些系统实体称之为资源,puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。[1] puppet采用C/S星状的结构。机器每个客户端周期的向服务器发送请求,获得其最新的配置信息,保证和该配置信息同步。每个puppet客户端周期性连接服务器端,下载最新的配置文件,并且严格按照配置文件来配置客户端。配置完成以后,puppet客户端可以反馈给服务器端一个消息。如果出错,也会给服务器端反馈一个消息。[1]
puppet与其他手工操作工具最大的区别就是puppet的配置具有稳定性。一旦更新了系统的配置文件,puppet会根据系统的配置文件来更改机器配置,让系统状态同配置文件所要求的状态保持一致。[1]
开发原因
系统管理员都喜欢自己写点小工具来让自己的工作完成的更快或者更好,不管是在大企业管理大量的服务器还是只管理两三台机器.但是很少人会把他们的工具发布出来.也就是是说极少有工具能被重用,或者说很多工具就只能在所在的组织内部有用。拷贝给别的组织,他们也用不上.也就是说,每个系统管理员,在一个新的公司,都会另起炉灶开发一套基于ssh,for循环的"系统"来帮助自己完成系统管理任务.