A melhor prática é colocar os fatos e outros plugins dentro dos módulos no servidor de fantoches. Em seguida, use o recurso pluginsync no cliente. Isso permite que o cliente de marionetes coloque as coisas no local apropriado.
{modulepath}
└── {module}
└── lib
|── augeas
│ └── lenses
├── facter
└── puppet
├── parser
│ └── functions
├── provider
| ├── exec
| ├── package
| └── etc... (any resource type)
└── type
Assim, um novo fato pode entrar em modules/examplemod/lib/facter/myfact.rb
.
Como facter-1.7
, também existe a possibilidade de ter fatos externos , que podem ser implantados em /etc/facter/facts.d
e pode ser escrito em qualquer idioma.