我对 puppet 和 facter 有疑问。
puppet --version -> 3.8.6
因素 --version -> 2.4.6
我为 softwareinventory 写了一个事实,返回值是一个嵌套的哈希
像这样:
apps = {
'Notepad++' => {
'Displayname' => 'Notepad++'
'Displayversion' => '6.8.3'
}
'Puppet(64-bit)' => {
'Displayname' => 'Puppet(64-bit)'
'Displayversion' => '3.8.6'
}
}
客户端和服务器上的 puppet.conf 包括: stringify_facts = false
如果我使用带有内容的本地清单 test.pp 在客户端上进行测试:
notify {$::packages['Notepad++']['Displayversion']
puppet apply test.pp
我得到正确的值 = 6.8.3
facter -p packages 返回预期的哈希值。
但使用 puppetrun:
puppet agent -t -d -v
Error: Could not retrieve catalog from remote server: Error 400 on SERVER:
packages is not a hash or array when accessing it with ....
如果我卷曲 puppetdb: curl -k http://puppetdbname:8080/v3/nodes/nodename/facts/packages
我只能看到一个字符串!
任何人都可以帮忙吗?有任何想法吗?
谢谢塔纳