0

我对 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

我只能看到一个字符串!

任何人都可以帮忙吗?有任何想法吗?

谢谢塔纳

4

1 回答 1

0

我发现 puppetdbv3 总是将事实显示为字符串,而 puppetdbv4 则不会。我在我的 puppetserver 上再次测试,我可以正常访问我的 hash -> packages。

问候坦纳

于 2016-05-27T11:12:57.990 回答