使用字符串而不是数组的人偶模板
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'
我在 Puppet 中使用 erb 模板制作配置文件。 我正在使用以下代码:
databasename = <%= @db_name %>
db_name
变量以以下 yaml 格式定义:
databases::db_name:
- DB_PLACEHOLDER
问题是,当我从模板生成文件时,Puppet 将我的变量替换用方括号括起来,如下所示。我不要方括号?
["DB_PLACEHOLDER"]
["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'