mike_puppet@fadedink.co.uk
2010-Mar-28 13:42 UTC
[Puppet Users] Custom fact works on command line but not in puppet
My custom fact is not being used during a puppet run, but I can see it
when I run puppet manually. This is quite similar to
http://projects.reductivelabs.com/issues/1918 except my fact works on
the command line but not from within puppet.
This is the first time I have tried adding a fact so it is possible I
have made a mistake somewhere. I have read everything I can find on
adding facts and I am pretty sure it is set up correctly.
Lots of info follows.... if anyone could give me some tips on what
could be going wrong I would appreciate it.
Thanks,
Mike
http://pastie.org/892038
[root@test01 puppet]# puppetd --version
0.25.4
[root@test01 puppet]# facter --version
1.5.7
[root@test01 puppet]# puppet --configprint libdir
/var/lib/puppet/lib
[root@test01 puppet]# ls -al $(puppet --configprint libdir)/facter
total 12
drwxr-xr-x 2 root root 4096 Mar 25 18:28 .
drwxr-xr-x 3 root root 4096 Mar 25 07:23 ..
-rw-r--r-- 1 root root 86 Mar 25 18:28 testfact.rb
[root@test01 puppet]# cat $(puppet --configprint libdir)/facter/
testfact.rb
require ''facter''
Facter.add("testfact") do
setcode do
"yep"
end
end
[root@test01 puppet]# facter | grep testfact
[root@test01 puppet]# facter --puppet | grep testfact
testfact => yep
[root@test01 puppet]# echo $RUBYLIB
/var/lib/puppet/lib
[root@test01 puppet]# echo $FACTERLIB
/var/lib/puppet/lib/facter
So it seems as if every works correctly, but when I try and access
this fact in a node definition nothing happens:
[root@test01 puppet]# cat manifests/nodes/test.pp
node ''test01.example.com'' {
notice("testfact: $testfact")
}
[root@test01 puppet]# puppetd --no-daemonize --debug --verbose -t
In another terminal:
[root@test01 ~]# puppetmasterd -d --no-daemonize -v --trace
<snip>
notice: Scope(Node[test01.example.com]): testfact:
notice: Compiled catalog for test01.example.com in 0.01 seconds
<snip>
stracing the puppet daemon shows that the testfact.rb file is being
opened after a number of failed attempts to find it:
[root@test01 puppet]# strace -o trace -ff puppetd --no-daemonize --
debug --verbose -t
[root@test01 puppet]# grep testfact * | grep ENOENT | wc -l #show
failed attempts at opening
40
[root@test01 puppet]# grep testfact * | grep RDONLY | wc -l #show
successful attempts at writing
13
--
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+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.