Hi, I want to use a file resource to write a facts.yaml file for Mcollective. For some reason it won't provide a valid yaml format if I dump my scope to hash and convert to_yaml.
file { "/etc/mcollective/facts.yaml" : owner => root, group => root, mode => 400, loglevel => debug, #content => inline_template("<%= scope.to_hash.reject { |k,v| !( k.is_a?(String) && v.is_a?(String) ) }.to_yaml %>"), #content => inline_template("<%= { \"a\" => 1, \"b\"=> 2}.to_yaml %>"), content => inline_template("<%= facts = {}; scope.to_hash.each_pair {|k,v| facts[k.to_s] = v.to_s unless k.to_s =~ /pkg_|_hours|_seconds|memoryfree|plugin_|config|_timestamp/ }; facts.to_yaml.sort %>"), } After a run the content is indented with 2 spaces and some facts give me garbage values. If I verify this on e.g. http://yamllint.com/ I have a syntax error with the 2 leading spaces. Snippet from '/etc/mcollective/facts.yaml' [root~]# cat /etc/mcollective/facts.yaml architecture: &id001 x86_64 hardwareisa: x86_64 hardwaremodel: *id001 kernelrelease: 2.6.18-274.17.1.el5xen clientversion: *id002 kernelversion: 2.6.18 lsbdistcodename: Final lsbdistdescription: CentOS release 5.8 (Final) lsbdistid: CentOS lsbdistrelease: "5.8" lsbmajdistrelease: "5" I did some debugging on the IRB. On the commandline I do get the expected format. To me it seems the to_yaml is not working for me in combination with inline template. What is causing the extra leading spaces? irb irb(main):001:0> h = { "a" => 1 , "b" => 2 } => {"b"=>2, "a"=>1} irb(main):002:0> require "yaml" => true irb(main):003:0> h.to_yaml => "--- \nb: 2\na: 1\n" irb(main):004:0> I see several snippets on the internets to write a facts.yaml file to be used with Mcollective. None of them work for me. Puppet version: 2.7.12 OS: Ubuntu 10.04 Any hints on how to fix this issue? --- kind regards, Martin Willemsma -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.