一、
关于
Puppet
1.1
什么是
Puppet
?
puppet是一种Linux、Unix平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。puppet把这些系统实体称之为资源,puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。
puppet采用C/S星状的结构,所有的客户端和一个或几个服务器交互。每个客户端周期的(默认半个小时)向服务器发送请求,获得其最新的配置信息,保证和该配置信息同步。每个puppet客户端每半小时(可以设置runinterval=30)连接一次服务器端, 下载最新的配置文件,并且严格按照配置文件来配置服务器. 配置完成以后,puppet客户端可以反馈给服务器端一个消息. 如果出错,也会给服务器端反馈一个消息.
1.2
为什么要使用
puppet
?
当你去管理10台服务器,你肯定会说小意思。没有任何压力。
当你去管理100台服务器,你肯定也会说小意思。
当你去管理 1000+台服务器呢?你是不是就头痛了,不同的机器,不同的系统, 使用不同的软件版本,配置也不一样。这样为了提升效率。Puppet就派上了大用场。
1.3Puppet 架构
1.4
简单地说下工作原理:
Puppet后台运行的时候默认是半小时执行一次,不是很方便修改。可以考虑不让它在后台跑而是使用crontab来调用。这样可以精确控制每台客户端的执行时间。分散执行时间也可以减轻压力
Puppet的工作细节分成如下几个步骤:
1、 客户端puppetd调用facter,facter会探测出这台主机的一些变量如主机名、内存大小、IP地址等。然后puppetd把这些信息发送到服务器端。
2、 服务器端的puppetmaster检测到客户端的
主机名,然后会到manifest里面对应的node配置,然后对这段内容进行解析,facter送过来的信息可以作为变量进行处理的,node牵涉到的代码才解析,其它的代码不不解析,解析分几个过程:语法检查、然后会生成一个中间的
伪代码,然后再把伪代码发给客户机。
3、 客户端接收到伪代码之后就会执行,客户端再把执行结果
发送给服务器。
4、 服务器再把客户端的执行结果
写入日志。
本文转自守住每一天51CTO博客,原文链接:http://blog.51cto.com/liuyu/476870,如需转载请自行联系原作者