Puppet 组件

17 Mar 2025 | 阅读 2 分钟

以下是 Puppet 的关键组件

  • Manifests (清单)
  • 模块
  • 资源
  • 因素
  • M-collective
  • 目录
  • Class
  • 节点

让我们详细了解这些组件

Manifests (清单)

Puppet Master 包含 Puppet Slave 的配置详细信息,这些信息以 Puppet 的原生语言编写。

Manifest 只是指定 Puppet Slave 配置详细信息的文件。 manifest 文件的扩展名为 .pp,表示 Puppet Policy(Puppet 策略)。这些文件包含描述 Slave 配置的 Puppet 脚本。

模块

Puppet 模块是 manifest 和数据的一个集合。 这里的数据是文件,事实或模板。 该模块遵循特定的目录结构。 这些模块允许 Puppet 程序拆分为多个 manifest。 模块只是数据或代码的自包含包。

让我们通过以下图片了解模块

Puppet Components

资源

资源是系统配置建模的基本单位。 这些是在后端运行以在 Puppet 中执行必要操作的预定义函数。

每个 Puppet 资源都定义了系统的某些元素,例如某些特定的服务或包。

因素

Factor 收集有关 Puppet Slave 的事实或重要信息。 Facts 是键值数据对。 它包含有关节点或 Master 机器的信息。 它代表 Puppet 客户端的状态,例如操作系统,网络接口,IP 地址,正常运行时间以及客户端机器是否是虚拟的。

这些 Facts 用于确定任何 Agent 的当前状态。 对任何目标机器的更改都是基于 Facts 进行的。 Puppet 的 Facts 是预定义的和自定义的。

M-Collective

M-collective 是一个框架,可以在多个 Slave 上并行执行多个作业。 该框架执行多个功能,例如

  • 用于与 Puppet Slave 集群进行交互; 它们可以是小群体,也可以是非常大的部署。
  • 要传输请求,请使用广播模型。 所有 Slave 同时接收所有请求,请求都附带过滤器,只有与过滤器匹配的 Slave 才能对请求执行操作。
  • 用于借助简单的命令行工具来调用远程 Slave。
  • 用于编写有关基础架构的自定义报告。

目录

在 Puppet 中编写的所有配置和 manifest 文件都会转换为编译后的格式。 此编译后的格式称为 catalog(目录),然后我们可以将此 catalog 应用于目标计算机。

slave 资源的所有必需状态都在 catalog 中描述。

Class

像其他编程语言一样,Puppet 也支持类,以更好地组织代码。 Puppet 类是将各种资源分组为单个单元的集合。

节点

节点是安装 Puppet Slave 的位置,用于管理所有客户端和服务器。


下一主题Puppet 应用