【问题标题】:Puppet template with string instead of array带有字符串而不是数组的木偶模板
【发布时间】:2019-03-20 15:05:26
【问题描述】:

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

databasename = <%= @db_name %>

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

databases::db_name:
- DB_PLACEHOLDER

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

["DB_PLACEHOLDER"]

【问题讨论】:

    标签: yaml puppet erb hiera


    【解决方案1】:

    ["DB_PLACEHOLDER"] 在 Puppet 和 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'
    

    【讨论】:

      猜你喜欢
      • 2022-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-14
      • 1970-01-01
      相关资源
      最近更新 更多