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.

Reply via email to