一、Puppet基础原理
Puppet是一款使用GPLV2X协议授权的开源管理配置工具,puppet是用ruby编写的,因此puppet的语法也和ruby类似,都是很简单的面对对象的高级语言。它既可以通过客户端—服务器的方式运行,也可以独立运行。puppet可以为系统管理员提供方便,快捷的系统自动化管理。
二、puppet工作流程
客户端 puppet-client 向 puppet-master 发起认证请求,或使用带签名的证书。
puppet-master 告诉 puppet-client 是合法的。
puppet-client 调用 facter, Facter 探测出主机的一些变量, 例如主机名、 内存大小、 IP 地址等,puppet-client 将这些信息通过 SSL 连接发送到服务器端。
puppet-master 服务器端检测客户端的主机名,然后找到 manifest 对应的 node 配置,并对该部分内容进行解析。facter 送过来的信息可以作为变量处理,node 牵涉到的代码才解析,其他没牵涉的代码不解析。解析分为几个阶段,首先是语法检查,如果语法错误就报错;如果语法没错,就继续解析,解析的结果生成一个中间的“伪代码”(catelog),然后把伪代码发给客户端。
puppet-client 端接收到“伪代码”,并且执行。
puppet-client 端在执行时判断有没有 file 文件,如果有,则向 fileserver 发起请求。
puppet-client 端判断有没有配置 report,如果已配置,则把执行结果发送给服务器。
puppet-server 端把 puppet-client 端的执行结果写入日志,并发送给报告系统。
更多常见问题,敬请访问PHP中文网。
以上是puppet是使用什么语言编写的的详细内容。更多信息请关注PHP中文网其他相关文章!