Puppet 架构
Puppet 使用主从或客户端-服务器架构。 Puppet 客户端和服务器通过 SSL 互连,这是一个安全的套接字层。它是一个模型驱动的系统。
这里,客户端被称为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 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 ...