O Facter não é adequado para isso. Seria muito mais simples personalizar as funções por módulo ou usar um ENC como o hiera.
Estou personalizando uma instalação de fantoches existente (com o facter) e acho que me deparei com um problema que compreende o escopo dos fatos personalizados.
Eu tenho vários módulos que são mapeados exclusivamente para diferentes classes de hosts dentro de um arquivo nodes.pp.
O que eu gostaria de alcançar seria ter fatos personalizados limitados por módulo, por exemplo, hosts em module1
executariam custom_fact_1
e hosts em module2
só executariam custom_fact_2
.
De acordo com os documentos facet / puppet, os fatos personalizados entram em um diretório <module-name>/lib/facter
e estão vinculados a esse módulo.
Já o fiz reunir alguns fatos personalizados, adicionando os scripts ruby ao lib/facter
dir de um único módulo, mas, estranhamente, eles não estão se limitando aos hosts aos quais o módulo está atribuído. O que está acontecendo é que todos os fatos personalizados são executados para todos os hosts (mesmo aqueles que não têm qualquer relação com esse módulo), o que não é exatamente o que eu pretendia.
Eu entendi mal a documentação? Esse tipo de mapeamento de módulo de fatos é possível?
Observação : Eu obtive um comportamento semelhante usando as instruções confine
nos scripts de fatos personalizados, mas isso vai contra o objetivo pretendido, pois gostaria de vincular os fatos personalizados ao módulos próprios e não tem o mapeamento nos scripts.
O Facter não é adequado para isso. Seria muito mais simples personalizar as funções por módulo ou usar um ENC como o hiera.
Esse comportamento é esperado sim, se você tiver o pluginsync ativado, o lib / facter de todos os módulos terminará em todos os nós.
Para responder à sua pergunta da forma mais direta possível, a maioria das configurações que vi usam grupos de alguma forma para categorizar os sistemas. Frequentemente, esses grupos mapeiam bem de perto os módulos, e você pode usar esses fatos de grupo para limitar os fatos a esses sistemas.
O que você está tentando fazer com esses fatos? Como outros mencionaram, tipos ou funções também podem fornecer o que você precisa sem estar disponível em todos os lugares. Mais informações sobre o que você está fazendo seria útil!
Tags puppet