Я настраиваю существующую установку марионеток (с помощью facter) и думаю, что столкнулась с проблемой понимания контекста пользовательских фактов.
У меня есть несколько модулей, которые отображаются исключительно на разные классы хостов в файле node.pp.
То, чего я хотел бы добиться, - это ограничить пользовательские факты ограниченным модулем, например, хосты в module1
будут выполнять custom_fact_1
а хосты в module2
будут выполнять только custom_fact_2
.
Согласно документации facter/puppet, пользовательские факты помещаются в каталог <module-name>/lib/facter
и привязываются к этому модулю.
Я уже собрал несколько пользовательских фактов, добавив сценарии ruby к lib/facter
одного модуля, но странным образом они не ограничивают себя хостами, которым назначен модуль. Происходит то, что все пользовательские факты запускаются для всех хостов (даже тех, которые не имеют никакого отношения к этому модулю), что не совсем то, что я намеревался.
Я неправильно понял документацию? Возможно ли такое сопоставление модулей фактов?
Примечание: я достиг аналогичного поведения, используя инструкции confine
в сценариях пользовательских фактов, но это идет вразрез с намеченной целью, так как я хотел бы связать пользовательские факты с самими модулями и не иметь отображения в сценариях.