我在Puppet中使用erb模板制作配置文件。 我正在使用以下代码:
databasename = <%= @db_name %>
db_name
变量以以下yaml格式定义:
databases::db_name:
- DB_PLACEHOLDER
问题是,当我从模板生成文件时,Puppet将方括号放在变量替换处,如下所示。我不要方括号吗?
["DB_PLACEHOLDER"]
答案 0 :(得分:2)
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