puppet安装使用教程(四)--puppet的工作原理及工作过程

时间:2022-02-06 08:59:05

在使用任何软件前我们都需要了解其工作原理,否则会给后续使用带来诸多不便。Puppet采用了非常简单的C/S架构,所有数据的交互都通过SSL进行,以保证安全。它的工作流程如图1所示。

puppet安装使用教程(四)--puppet的工作原理及工作过程

图1 Puppet工作流程

1. 客户端Puppetd向Master发起认证请求,或使用带签名的证书。

2. Master告诉Client你是合法的。

3. 客户端Puppetd调用Facter,Facter探测出主机的一些变量,例如主机名、内存大小、IP地址等。Puppetd将这些信息通过SSL连接发送到服务器端。

4. 服务器端的Puppet Master检测客户端的主机名,然后找到manifest对应的node配置,并对该部分内容进行解析。Facter送过来的信息可以作为变量处 理,node牵涉到的代码才解析,其他没牵涉的代码不解析。解析分为几个阶段,首先是语法检查,如果语法错误就报错;如果语法没错,就继续解析,解析的结 果生成一个中间的“伪代码”(catelog),然后把伪代码发给客户端。

5. 客户端接收到“伪代码”,并且执行。

6. 客户端在执行时判断有没有File文件,如果有,则向fileserver发起请求。

7. 客户端判断有没有配置Report,如果已配置,则把执行结果发送给服务器。

8. 服务器端把客户端的执行结果写入日志,并发送给报告系统。

这就是puppet的工作流程。最重要的莫过于puppet-master来管理node的配置文件。


在学习puppet的过程中,资料中会反复提到module,class,resource等关键字。下面我们就来说说他们之间的关系。

module:模块,不同的模块实现不同的功能。

class:可以理解为类,模块是由类组成的,模块中包含一个类或者多个类

resource:资源,我个人理解为时puppet的管理配置文件的最小组成单元,同理,类是由一个或多个资源组成的。这些资源可以是文件(file),用户(user),组(group),服务(service),软件(package)等等。后面的文章我们会继续介绍resource的详细情况。


本文出自 “linux菜鸟” 博客,转载请与作者联系!