用字符串代替数组的木偶模板

时间:2019-03-20 15:05:26

标签: yaml puppet erb hiera

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

databasename = <%= @db_name %>

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

databases::db_name:
- DB_PLACEHOLDER

问题是,当我从模板生成文件时,Puppet将方括号放在变量替换处,如下所示。我不要方括号吗?

["DB_PLACEHOLDER"]

1 个答案:

答案 0 :(得分:2)

Puppet和Ruby中的

Configuration configuration = new BaseConfiguration(); configuration.addProperty("gremlin.neo4j.directory", "tmp/mygraph"); configuration.addProperty("gremlin.neo4j.conf.dbms.memory.pagecache.size", "500m"); myGraph = Neo4jGraph.open(configuration); (因为您正在使用ERB)在语法上是一个具有以下元素的数组:["DB_PLACEHOLDER"]。如果您不希望"DB_PLACEHOLDER"成为数组,则需要将其指定为字符串,而不是Hiera从其查找的Yaml中的数组。

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

databases::db_name

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

databases::db_name

如果从yaml进行的Hiera查找中的类型推断未转换为字符串,则始终可以在yaml中始终将值明确指定为字符串:

databases::db_name: DB_PLACEHOLDER