Puppet 架构

Puppet 使用主从或客户端-服务器架构。 Puppet 客户端和服务器通过 SSL 互连,这是一个安全的套接字层。它是一个模型驱动的系统。

Puppet Architecture

这里,客户端被称为Puppet agent/slave/node,服务器称为Puppet Master。

让我们看看Puppet架构的组成部分:

Puppet Master

Puppet Master 以 Puppet 代码的形式处理所有配置相关的过程。它是一个基于 Linux 的系统,其中安装了 puppet master 软件。 Puppet Master 必须在 Linux 中。它使用 puppet 代理将配置应用到节点。

这是检查和标记 SSL 证书的地方。

Puppet Slave or Agent

Puppet 代理是真正的工作系统,由客户端使用。它安装在客户端机器上,由傀儡主人维护和管理。它们内部运行着一个 puppet 代理服务。

代理机器可以配置在任何操作系统上,例如 Windows、Linux、Solaris 或 Mac OS。

Config Repository

Config Repository 是存放所有服务器和节点相关配置的存储区域,我们可以根据需要拉取这些配置。

Facts

Facts 是键值数据对。它包含有关节点或主机的信息。它代表了一个傀儡客户端状态,例如操作系统、网络接口、IP 地址、正常运行时间以及客户端机器是否是虚拟的。

这些事实用于确定任何代理的当前状态。任何目标机器上的更改都是基于事实进行的。 Puppet 的 fact 是预定义和定制的。

Catalog

用 Puppet 编写的整个配置和清单文件都变成了编译格式。这种编译后的格式称为目录,然后我们可以将此目录应用到目标机器上。

上图执行以下功能:

  • 代理节点向主节点或服务器发送事实并请求目录。
  • master 或 server 会在 master 访问的一些信息的帮助下编译并返回节点的目录。
  • 然后代理通过检查目录中提到的每个资源将目录应用到节点。如果它识别出未处于理想状态的资源,则进行必要的调整以修复它们。或者,它确定在无操作模式下,需要进行调整以协调目录。
  • 最后,代理将报告发送回主。

 

Puppet 主从通信

Puppet 主从通过 SSL(安全套接字层)的安全加密通道进行通信。让我们看下图来了解主从与此通道之间的通信:

Puppet Architecture

上图描述了以下内容:

  • Puppet slave 请求 Puppet Master 证书。
  • Puppet Master 将 Master Certificate 发送给 Puppet slave 以响应客户端请求。
  • Puppet master 向 Puppet slave 请求从属证书。
  • Puppet slave 将请求的 slave 证书发送给 puppet master。
  • Puppet slave 向 Puppet Master 发送数据请求。
  • 最后,master 根据请求将数据发送给 puppet slave。

以下是 Puppet 的关键组件:ManifestsModuleResourceFactorM-collectiveCatalogsClassNodes让我们详细了解这些组件:ManifestsPuppet Master ...