第 2 章 从调度构建 Puppet 模块


本章介绍了如何构建和测试您自己的 Puppet 模块。这包括创建部署简单 Web 服务器配置的 Puppet 模块的基本教程。

2.1. 检查 Puppet 模块的 Anatomy

在创建模块之前,我们需要了解创建 Puppet 模块的组件。

Puppet 清单

不要与清单 (订阅清单) 混淆。Puppet 清单是包含用于定义一组资源及其属性的代码的文件。资源是系统的任何可配置部分。资源示例包括软件包、服务、文件、用户和组、SELinux 配置、SSH 密钥身份验证、cron 作业等。清单使用一组键值对为其属性定义各个所需的资源。例如:

package { 'httpd':
  ensure => installed,
}
Copy to Clipboard Toggle word wrap

此声明检查是否安装了 httpd 软件包。如果没有,清单将执行 yum 并安装它。

用于开始编译的 Puppet 清单称为"维护清单"或"站点清单"。

清单位于模块的 清单目录中

Puppet 模块也使用 测试 目录来测试清单。这些清单用于测试官方清单中包含的特定类。

静态文件

模块可以包含 Puppet 可以复制到您系统上的特定位置的静态文件。这些位置和其他属性(如权限)通过清单中的 文件 资源声明进行定义。

静态文件位于模块 的文件 目录中。

模板

有时配置文件需要自定义内容。在这种情况下,用户可以创建模板而不是静态文件。与静态文件一样,模板在清单中定义,复制到系统上的位置。不同之处在于,模板允许 Ruby 表达式定义自定义内容和变量输入。例如,如果要使用可自定义端口配置 httpd,那么配置文件的模板会包括:

Listen <%= @httpd_port %>
Copy to Clipboard Toggle word wrap

本例中的 httpd_port 变量在引用此模板的清单中定义。

模板位于模块的 templates 目录中。

插件

插件允许在 Puppet 的核心功能之外扩展方面。您可以使用插件来定义自定义事实、自定义资源或新功能。例如,数据库管理员可能需要 PostgreSQL 数据库的资源类型。这有助于数据库管理员在安装 PostgreSQL 后使用一组新数据库填充 PostgreSQL。因此,数据库管理员需要创建一个 Puppet 清单,以确保 PostgreSQL 安装和数据库之后创建。

插件位于模块的 lib 目录中。其中包括一组子目录,具体取决于插件类型。例如:

  • /lib/facter - 自定义事实的位置。
  • /lib/puppet/type - 自定义资源类型定义的位置,概述了属性的键值对。
  • /lib/puppet/provider - 自定义资源提供程序的位置,与资源类型定义一同使用来控制资源。
  • /lib/puppet/parser/functions - 自定义功能的位置。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat