Hello all,

To start, I would like to thank you in advance for your responses.

I'm attempting to create a custom fact that will determine the network 
location of a node, based on it's hostname.  Ideally this would be run on a 
node prior to the rest of the puppet modules because I will use the result 
as a top scope variable to assign certain values to nodes, based on their 
network location.  My node hostnames currently subscribe to this convention:

network-hostname/role-number (ie. home-elastic-01/work-mysql-02)

I've written a very simple fact to start with that looks like this (please 
excuse my code as I'm quite new to ruby):

# custom fact for determining network location of node
#
require 'facter'
Facter.add(:network_geo) do
  setcode do
    hostname          = Facter.value(:hostname)
    hostname_array = hostname.split('-')
    hostname_array
  end
end

This fact obviously doesn't get me what I want yet, but I'd like to test 
this on a node to ensure basic parsing of the hostname and this is where my 
confusion comes in.  I've created a puppet module called sys_ident and 
added the above code into a file called network_geo.rb, located within the 
/sys_ident/files/ directory.  

It's my understanding that I have to add the /sys_ident/files/ path into 
either the RUBYLIB or FACTERLIB environment path and I've done that 
(although I don't understand how that fits into my master/agent setup and 
if I need to add this into the path in the first place).  However, my 
expectation was that after the above, I could simply run 'facter | grep 
network_geo' and I would see the hostname of my machine split up but that 
is not the case.  Instead, have to run 'facter -p network_geo' and I get 
the desired output.

So my question is, do I want to or should I expect to use a custom fact by 
simply running 'facter network_geo' or will I have to run 'facter -p 
<custom fact>' to invoke my fact.  Also, if I run puppet and this module 
does run, can I identify this fact as a normal top scope variable in my 
manifests ?

If anybody has a good link that explains this, I would be most appreciative 
as I'm a bit confused.

Once again, thank you for your time in advance as it's most appreciated.

Cheers,

Mike


-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/fc786711-e4ab-405a-a00e-d43121275835%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to