簡體   English   中英

木偶:通過hiera的create_resources使用augeas配置一組[keys:values]

[英]Puppet: configuring with augeas a set of [keys:values] via create_resources from hiera

我正在嘗試創建一個接口來偽循環一組鍵:我的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中的哪里keys:要更新的值應該在哈希中

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

因此,我的想法是將我的Augeas lense(不確定,如果我真的需要'context',當必須將'incl'與'lens'一起使用)用於我的Yaml。

但是,p目前無法抱怨字符串而不是預期的哈希值

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文件中的數據無效。 將其更改為:

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

另外,您不必使用hiera_hash 您可以只使用hiera 請閱讀有關hiera查找功能之間的區別的信息,並遵循有關查找類型的示例。 可能還必須刪除validate_hash($augeas_files)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM