2

Я настраиваю существующую установку марионеток (с помощью facter) и думаю, что столкнулась с проблемой понимания контекста пользовательских фактов.

У меня есть несколько модулей, которые отображаются исключительно на разные классы хостов в файле node.pp. То, чего я хотел бы добиться, - это ограничить пользовательские факты ограниченным модулем, например, хосты в module1 будут выполнять custom_fact_1 а хосты в module2 будут выполнять только custom_fact_2 .

Согласно документации facter/puppet, пользовательские факты помещаются в каталог <module-name>/lib/facter и привязываются к этому модулю.

Я уже собрал несколько пользовательских фактов, добавив сценарии ruby к lib/facter одного модуля, но странным образом они не ограничивают себя хостами, которым назначен модуль. Происходит то, что все пользовательские факты запускаются для всех хостов (даже тех, которые не имеют никакого отношения к этому модулю), что не совсем то, что я намеревался.

Я неправильно понял документацию? Возможно ли такое сопоставление модулей фактов?

Примечание: я достиг аналогичного поведения, используя инструкции confine в сценариях пользовательских фактов, но это идет вразрез с намеченной целью, так как я хотел бы связать пользовательские факты с самими модулями и не иметь отображения в сценариях.

3 ответа3

-1

Чтобы ответить на ваш вопрос как можно более прямо, большинство установок, которые я видел, используют группы определенного типа для классификации систем. Часто эти группы отображаются довольно близко к модулям, и вы можете использовать эти групповые факты, чтобы ограничить факты этими системами.

Что вы пытаетесь сделать с этими фактами? Как уже упоминалось, типы или функции могут также дать вам то, что вам нужно, не будучи доступными везде. Было бы полезно больше информации о том, что вы делаете

-1

Facter не подходит для этого. Было бы намного проще настраивать пользовательские функции для каждого модуля или использовать ENC, например, hiera.

-1

Это ожидаемое поведение, да, если у вас включена pluginsync, то lib/facter из всех модулей попадает на все узлы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .