Puppet:通过hiera的create_资源,使用augeas配置一组[keys:values]
我正试图创建一个接口,在一组键上进行伪循环:从hiera yaml中获取的值,以使用augeas更新配置文件Puppet:通过hiera的create_资源,使用augeas配置一组[keys:values],puppet,hiera,augeas,Puppet,Hiera,Augeas,我正试图创建一个接口,在一组键上进行伪循环:从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
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)
在MyYAML keys中的何处:要更新的值应该在如下的散列中
lib_BOX::MYCONF::config:
SITE_NAME: "TEST-SITE"
OTHER_STUFF: "DEBUG"
因此,我们的想法是将我的augeas lense(不确定,如果我真的需要“上下文”,当“incl”必须与“lens”一起使用时)应用于yaml中的配对
但是,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获得了一个哈希,我想我的资源定义中的某些内容被破坏了,但我看不出是什么
也许有人对我有什么想法
干杯,谢谢,
yaml文件中的Thomas数据无效。请将其更改为以下内容:
lib_BOX::MYCONF::config:
first_aug:
key: SITE_NAME
value: "TEST-SITE"
second_aug:
key: OTHER_STUFF
value : "DEBUG"
此外,您不必使用hiera\u hash
。您只需使用hiera
。
请阅读和下面的例子之间的差异。
可能您还必须删除行验证\u散列($augeas\u文件)