2016-05-27 12 views
-1

Ich habe ein Problem mit Marionette und Faktor.Marionette stringify Fakten

Puppen --Version -> 3.8.6
facter --Version -> 2.4.6

Ich schreibe eine Tatsache für SoftwareInventory mit Rueckgabewert einer verschachtelten Hash

wie folgt aus:

apps = { 
    'Notepad++' => { 
     'Displayname' => 'Notepad++' 
     'Displayversion' => '6.8.3' 
        } 
    'Puppet(64-bit)' => { 
     'Displayname' => 'Puppet(64-bit)' 
     'Displayversion' => '3.8.6' 
        } 
      } 

die puppet.conf auf dem Client und auf dem Server ist unter anderem: stringify_facts = false

Wenn ich mit einem lokalen Manifest test.pp mit Inhalt auf dem Client zu testen:
benachrichtigen {:: Pakete $ [ 'Notepad ++'] [ 'Displayversion']

Puppe gilt test.pp
i erhalte das Recht Wert = 6.8.3

facter -p-Pakete gibt einen Hash wie erwartet zurück.

aber mit einem puppetrun:
puppet Mittel -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 .... 

Wenn ich locken die puppetdb: curl -k http://puppetdbname:8080/v3/nodes/nodename/facts/packages

i nur einen String sehen können!

Kann mir bitte helfen. Irgendwelche Ideen?

Dank Taner

Antwort

0

fand ich puppetdbv3 die Fakten als String und puppetdbv4 nicht immer zeigen, aus. habe ich nochmal auf meinem Puppetserver getestet und ich konnte normal auf meine Hash -> Pakete zugreifen.

grüße Taner