I discovered by running facter without args on my client, that the fact
shows up as 'activationkey' (all lower case), even though I define it as
'activationKey' in my .rb file.  If I reference it as $activationkey in my
manifest, it works as desired.   It must be something about the way that
facter parses the fact names, or a ruby constraint on variable names,
although I couldn't find it in the documentation.

Anyway, it's working now and I hope this helps someone else with the same
issue.

Paul

On Thu, Jul 7, 2011 at 1:00 PM, filsdepatrick <[email protected]>wrote:

> I am trying to make my first custom fact work following (I think) the
> instructions given on puppetlabs.com and in 'Pro Puppet'.
>
> Although I can evaluate my fact using facter from the cli, it doesn't
> expand the fact from the variable name in my manifest.
>
> The os, puppet version and facter version are the same on both my
> client and the server:
>
> [root@vm-ops001-1 facter]# facter -v
> 1.5.9
>
> [root@vm-ops001-1 facter]# puppet --version
> 2.6.4
>
> The factpath is default on both client and server, and pluginsync is
> set to true in the [main] section of puppet.conf on both client and
> server.
>
> [root@vm-ops001-1 facter]# puppet --genconfig | grep -E 'factpath|
> pluginsync'
>    factpath = /var/lib/puppet/lib/facter:/var/lib/puppet/facts
>    pluginsync = true
>
>
> my fact is defined on the server in /etc/puppet/modules/spacewalk/lib/
> facter/activationKey.rb:
>
> [root@puppet ~]# cat /etc/puppet/modules/spacewalk/lib/facter/
> activationKey.rb
> # activationKey.rb
>
> Facter.add(:activationKey) do
>   setcode do
>      "1-rhel5-x86_64"
>   end
> end
>
> I trivialized it to test if I could eliminate the error (before it was
> using some core facts to derive activationKey), but the error is
> identical with the trivial fact.
>
> Here is how I attempt to reference my custom fact:
>
> [root@puppet ~]# cat /etc/puppet/modules/spacewalk/manifests/
> register.pp
>
> class spacewalk::register {
>
>
>
>   exec { 'register-with-spacewalk':
>  command => "rhnreg_ks --profilename=$hostname --activationkey=
> $activationKey --serverUrl=http://spacewalk/XMLRPC";,
>     unless => "test -e /etc/sysconfig/rhn/systemid",
>     path => [ '/bin', '/sbin', '/usr/bin', '/usr/sbin' ],
>     require => Class['spacewalk::install'],
>   }
>
> }
>
> running the client with debug shows the exec command failing with an
> exit code of 255 which is consistent with the nul parameter for the --
> activationkey option to rhnreg_ks.  I've tried it multiple times in a
> row from the node with the identical result:
>
> [root@vm-ops001-1 ~]#   puppetd -t --debug
>
> ...
> debug: Finishing transaction 23810158615960
> debug: Storing state
> debug: Stored state in 0.01 seconds
> info: Loading facts in activationKey
> info: Loading facts in activationKey
> ...
>
> debug: Executing 'test -e /etc/sysconfig/rhn/systemid'
> debug: /Stage[main]/Spacewalk::Register/Exec[register-with-spacewalk]:
> Executing 'rhnreg_ks --profilename=vm-ops001-1 --activationkey= --
> serverUrl=http://spacewalk/XMLRPC'
> debug: Executing 'rhnreg_ks --profilename=vm-ops001-1 --activationkey=
> --serverUrl=http://spacewalk/XMLRPC'
> err: /Stage[main]/Spacewalk::Register/Exec[register-with-spacewalk]/
> returns: change from notrun to 0 failed: rhnreg_ks --profilename=vm-
> ops001-1 --activationkey= --serverUrl=http://spacewalk/XMLRPC returned
> 255 instead of one of [0] at /etc/puppet/modules/spacewalk/manifests/
> register.pp:11
> debug: Finishing transaction 23810158492340
> debug: Storing state
> debug: Stored state in 0.01 seconds
> notice: Finished catalog run in 0.84 seconds
>
> The debug shows nothing expanded for the value of $activationKey from
> the register.pp manifest,  running from cli works however with
> $FACTERLIB set:
>
>
> [root@vm-ops001-1 ~]# echo $FACTERLIB
> /var/lib/puppet/lib
> [root@vm-ops001-1 ~]# facter activationKey
> 1-rhel5-x86_64
>
> Other things I've tried:
>
> restarting the master (server and agent) after each modification.
>
> putting activationKey.rb in /usr/lib/ruby/site-ruby/1.8/facter  with
> the core facts (still same error).
>
> upgrading from facter 1.5.8 to facter 1.5.9
>
> installing rubygems and deps which were not installed before.
>
> I'm really banging my head against the wall with this one, and I'm
> wondering if it's something really obvious and stupid that I've
> overlooked.   Any help would be greatly appreciated.
>
> thanks,
>
> Paul

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to [email protected].
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.

Reply via email to