【问题标题】:Puppet: configuring with augeas a set of [keys:values] via create_resources from hieraPuppet:通过 hiera 的 create_resources 使用 augeas 配置一组 [keys:values]
【发布时间】:2015-11-18 16:48:25
【问题描述】:

我正在尝试创建一个接口,以对一组键进行伪循环:来自我的 hiera yaml 的值以使用 augeas 更新配置文件

define augeas_config (
  $key,
  $value
)
{
  augeas{ "/var/MYCONF/MYCONF.def":
    lens => "/var/lib/puppet/lib/augeas/lenses/MYCONF.aug",
    incl => "/var/MYCONF/MYCONF.def",
    context => "/var/MYCONF/MYCONF.def",
    changes => [ "set $key $val" ],
  }
}

$augeas_files = hiera_hash('lib_BOX::MYCONF::config', {} )
validate_hash($augeas_files)

create_resources('augeas_config', $augeas_files)

在我的 yaml 键中的位置:要更新的值应该在像这样的哈希中

lib_BOX::MYCONF::config:
  SITE_NAME: "TEST-SITE"
  OTHER_STUFF: "DEBUG"

所以,我的想法是对我的 yaml 中的对应用我的 augeas lense(不确定,如果我真的需要 'context',当 'incl' 必须与 'lens' 一起使用时)。

但是,puppet 目前无法抱怨字符串而不是预期的哈希

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Evaluation Error: Error while evaluating a Function Call, can't convert String into Hash at /etc/puppet/environments/development/modules/lib_BOX/manifests/config.pp:28:3 on node MY.NODE.FOO

第 28 行是带有“create_resources('augeas_config'...”的行。由于我从 hiera 获得哈希,我想我的资源定义中的某些内容被破坏了,但我没有看到什么??

也许有人对我有想法?

干杯,谢谢, 托马斯

【问题讨论】:

    标签: puppet hiera augeas


    【解决方案1】:

    您的 yaml 文件中的数据无效。将其更改为:

    lib_BOX::MYCONF::config:
        first_aug:
            key: SITE_NAME
            value: "TEST-SITE"
        second_aug:
            key: OTHER_STUFF
            value : "DEBUG"
    

    此外,您不必使用hiera_hash。您可以只使用hiera。 请阅读hiera lookup functions 之间的差异并遵循有关lookup types 的示例。 可能您还必须删除行 validate_hash($augeas_files)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多