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

问题描述 投票:0回答:1

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

databasename = <%= @db_name %>

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

databases::db_name:
- DB_PLACEHOLDER

问题是,当我从模板生成一个文件时,Puppet在我的变量替换中加上方括号,如下所示。我不想要方括号?

["DB_PLACEHOLDER"]
yaml puppet erb hiera
1个回答
2
投票

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

您的示例将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'
© www.soinside.com 2019 - 2024. All rights reserved.