使用字符串而不是数组的人偶模板

Puppet template with string instead of array

我在 Puppet 中使用 erb 模板制作配置文件。 我正在使用以下代码:

databasename = <%= @db_name %>

db_name 变量以以下 yaml 格式定义:

databases::db_name:
- DB_PLACEHOLDER

问题是,当我从模板生成文件时,Puppet 将我的变量替换用方括号括起来,如下所示。我不要方括号?

["DB_PLACEHOLDER"]
Puppet 中的

["DB_PLACEHOLDER"] 和 Ruby(因为您使用的是 ERB)在语法上是一个包含一个元素的数组:"DB_PLACEHOLDER"。如果您不希望 databases::db_name 成为一个数组,那么您需要将其指定为一个字符串,而不是 Hiera 从中查找的 yaml 中的一个数组。

下面的示例将 databases::db_name 指定为数组。

databases::db_name:
- DB_PLACEHOLDER

您可以使用适当的 yaml 语法将 databases::db_name 的类型更改为字符串:

databases::db_name: DB_PLACEHOLDER

如果在从 yaml 进行的 Hiera 查找期间的类型推断未转换为字符串,您始终可以在 yaml 中显式地将值指定为字符串:

databases::db_name: 'DB_PLACEHOLDER'