Hey JonY,Firstly, i'm not an expert but hopefully this assist youWe are using the single dir config as we're currently running on an older version of puppet, but this link should give you the information you require.A snippet from the page above says..The best way to distribute external facts is with pluginsync, which added support for them in Puppet 3.4/Facter 2.0.1. To add external facts to your puppet modules, just place them in<MODULEPATH>/<MODULE>/facts.d/
.eg /etc/puppet/environments/production/modules/<modulename>/facts.d/<fact_name>.rbEach environment will use its own custom facts which is what you want so you can test a custom fact in the test env (/etc/puppet/environments/test/modules/base/lib/facter/) before you push to others etc.Having the custom fact present in this directory should deploy it on the servers (it does for me!)To answer your 2 questions directly;
1. What step(s) did I miss in getting my facts to be distributed?
None from what I've seen - just your custom facts are in the wrong folder
2. When I split up my network into 'production', 'test', etc folders for use in environments - what happens to custom facts then?
The facts are unique per environmentHope this helpsCheersDavid
I'm attempting to make the jump to directory-based environments and am curious about what to do with custom facts.In my current config I've tried putting custom facts into a separate module as /etc/puppet/modules/facts/{manifest,lib} and /etc/puppet/modules/facts/lib/facter/<modules go here>. I haven't had any success in getting these to propagate to clients though.I've added 'pluginsync=true' to puppet.conf on server/clients.Reading the various docs doesn't make it sound like I need a manifest for custom facts. Truth? How about a class file?
Questions:1. What step(s) did I miss in getting my facts to be distributed?2. When I split up my network into 'production', 'test', etc folders for use in environments - what happens to custom facts then?
"For a given node, the pluginsync process will sync plugins, including custom facts, from the modules in the modulepath of the environment to which that node belongs."
"For a given node, the pluginsync process will sync plugins, including custom facts, from the modules in the modulepath of the environment to which that node belongs."So if my modulepath is /etc/puppet/modules - pluginsync will grab everything from 'lib' folders under that (IE /etc/puppet/modules/.../lib ) regardless of whether it is referenced for a given client? Seems a tad confusing as other elements from this path (other modules) aren't sent to a given client without appearing in the node classifier for that client.