Follow up on this: My code was fine. Somehow the "level" variable I was using got stuck on "normal." That is, when I ran "puppetd -t." Even if I removed "level = normal" from the manifest, just leaving "level = confidential," "normal" was returned. When puppetd ran as a daemon, the correct variable was returned.
The fix was to remove "/var/lib/puppet/yaml/facts/puppet.example.com.yaml." Kent 2008/9/11 Kenton Brede <[EMAIL PROTECTED]>: > I'm trying to create a custom fact. The following code works fine if puppetd > runs as a daemon but not from the command line. In other words if this runs > on server5 as a daemon, the return is correct, "confidential." But if > I run "puppetd -t" > from the command line "normal" is returned. > > I don't really know ruby so I'm not confident about the code or using > the facter/setcode > method. Anything I'm doing wrong or is this a puppet/facter bug? > > I'm using puppetd 0.24.5 and facter 1.5.1. > > Thanks, > Kent > > -------------------------------------------------------------------------------------------- > Facter.add("security_level") do > def sec_level() > # grab hostname > require "socket" > hostname = Socket.gethostname > > # check if hostname matches and designate security level > if hostname =~ /(server2|server5|server28)/ > level = 'confidential' > else > level = 'normal' > end > return level > end > > setcode do > sec_level > end > > end > ----------------------------------------------------------------------------------------- > --~--~---------~--~----~------------~-------~--~----~ 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---