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+unsubscribe@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.