Puppet 模板

2024 年 8 月 29 日 | 阅读 2 分钟

模板是用一种特殊的语言编写的,可以从数据生成文本。 模板是收集代码、数据和文字文本以生成最终输出的文档。 模板的主要目的是通过简单的输入来处理文本的复杂部分。

我们在 Puppet 中使用模板来处理配置文件的内容。

模板语言

Puppet 支持两种模板语言

  • EPP(Embedded Puppet)在特殊标签中使用 Puppet 表达式。 这种语言适用于 Puppet 4.0 及更高版本。
  • ERB(Embedded Ruby)在标签中使用 Ruby 代码,您必须具备一些 Ruby 知识。 这种语言支持所有 Puppet 版本。

评估模板

要评估模板,请使用以下函数

我们可以定义模板的完整路径,或者将所有模板拖到 Puppet 的 templatedir 中。 puppetdir 最常用的位置是 /var/puppet/templates。 我们可以通过运行 Puppet --configprint templatedir 来找到目录的位置。

客户端不评估模板;解析器对其进行评估。 因此,如果您使用 puppetmasterd,则只需在服务器上拥有该模板,而无需将其下载到客户端。 客户端对待两者都是一样的,使用模板并将文件的所有内容定义为字符串。 这表明客户端特定的变量首先由 puppetmasterd 在 puppet 启动阶段发现。

使用模板

让我们看一个例子来生成用于测试站点的 tomcat 配置

以下是模板定义

这会将每个模板文件推送到单独的文件中,然后我们需要告诉 Apache 加载这些配置文件

组合模板

要组合两个模板,请使用以下命令

模板中的迭代

模板还支持 Puppet 中的数组迭代。

我们有如下模板

我们将得到以下输出

模板中的条件

模板也支持条件。 我们可以轻松地在文件中编写条件内容


下一个主题Puppet 自定义函数