On Wed, Aug 15, 2012 at 2:28 AM, André Fernandes <
andr...@gmail.com> wrote:
> I am customizing an existing puppet installation (with facter) and I think I
> ran into an issue understanding the scope of custom facts.
>
> I have several modules that are mapped exclusively to different classes of
> hosts within a nodes.pp file. What I'd like to achieve would be to have
> custom facts limited by module, for example hosts in module1would execute
> custom_fact_1 and hosts in module2 would only execute custom_fact_2.
>
> According to the facter/puppet docs, the custom facts go into a
> <module-name>/lib/facterdirectory, and are tied to that module.
>
> I have made it gather a few custom facts already, by adding the ruby scripts
> to a single module'slib/facter dir, but strangely they are not limiting
> themselves to the hosts to which the module is assigned. What is happening
> is that all custom facts are ran for all hosts (even the ones that don't
> have any relationship to that module), which is not exactly what I intended.
>
> Did I misunderstand the documentation? Is this type of fact-module mapping
> possible?
>
> Note: I have achieved a similar behaviour by using confine instructions in
> the custom facts scripts, but this goes against the intended purpose, since
> I'd like to tie the custom facts to the modules themselves and not have the
> mapping in the scripts.
Pluginsync distributes all modules lib dir in modulepath to the
client. It's not based on whether a class in a module is assigned to
the client. So yes custom facts get shipped to every system in that
environment.
Nan