简介
puppet是一种Linux、Unix、windows平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。puppet把这些系统实体称之为资源,puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。
puppet采用C/S星状的结构,所有的客户端和一个或几个服务器交互。每个客户端周期的(默认半个小时)向服务器发送请求,获得其最新的配置信息,保证和该配置信息同步。每个puppet客户端每半小时(可以设置)连接一次服务器端, 下载最新的配置文件,并且严格按照配置文件来配置客户端. 配置完成以后,puppet客户端可以反馈给服务器端一个消息. 如果出错,也会给服务器端反馈一个消息
puppet工作原理
(1)agent向master发起认证请求,或使用带签名的证书;
(2)master验证agent是否合法;
(3)agent调用facter,facter探测主机信息(例如:hostname,mem,ip 等等),agent把这些信息通过SSL连接发送给master;
(4)master检查agent端hostname ,然后找到manifest里面对应的node配置,并对其解析,解析结果生成一个“伪代码”(catelog),最后把catelog发给agent
(5)agent接收catelog,并执行;
(6)agent执行时判断有无file文件,如果有,则向其fileserver发送请求;
(7)agent判断是否配置report,如果配置,则把执行结果发送给master;
(8)master把agent执行结果写入log,并发送系统报告;
拓扑图
实验环境
os:centos 6.5 x86_64 mini
已关闭:iptables,SElinux
已安装组件:Development tools,Server Platform Development
puppet部署(master配置)