Facter не подходит для этого. Было бы намного проще настраивать пользовательские функции для каждого модуля или использовать ENC, например, hiera.
facter: настройка специфичных для модуля пользовательских фактов?
Я настраиваю существующую установку марионеток (с помощью facter) и думаю, что столкнулась с проблемой понимания контекста пользовательских фактов.
У меня есть несколько модулей, которые отображаются исключительно на разные классы хостов в файле node.pp. То, чего я хотел бы добиться, - это ограничить пользовательские факты ограничением модуля, например module1
, выполняются custom_fact_1
узлы in, а узлы in module2
будут только выполняться custom_fact_2
.
Согласно документам facter / puppet, пользовательские факты попадают в <module-name>/lib/facter
каталог и привязываются к этому модулю.
Я уже собрал несколько пользовательских фактов, добавив сценарии ruby в каталог одного модуля lib/facter
, но, как ни странно, они не ограничиваются хостами, которым назначен модуль. Происходит то, что все пользовательские факты запускаются для всех хостов (даже тех, которые не имеют никакого отношения к этому модулю), что не совсем то, что я намеревался.
Я неправильно понял документацию? Возможно ли такое сопоставление модулей фактов?
Примечание : я достиг аналогичного поведения, используя confine
инструкции в пользовательских сценариях фактов, но это идет вразрез с намеченной целью, так как я хотел бы связать пользовательские факты с самими модулями и не иметь отображения в сценариях.
3 ответа на вопрос
Это ожидаемое поведение, да, если у вас включена pluginsync, то lib / facter из всех модулей попадает на все узлы.
Чтобы ответить на ваш вопрос как можно более прямо, большинство установок, которые я видел, используют группы определенного типа для классификации систем. Часто эти группы отображаются довольно близко к модулям, и вы можете использовать эти групповые факты, чтобы ограничить факты этими системами.
Что вы пытаетесь сделать с этими фактами? Как уже упоминалось, типы или функции могут также дать вам то, что вам нужно, не будучи доступными везде. Было бы полезно больше информации о том, что вы делаете
Похожие вопросы
-
2
Кукольное предприятие против бесплатной версии, в чем разница?
-
2
Почему Puppet продолжает устанавливать пакет, даже если он уже установлен?
-
1
Пакетный скрипт Windows получает изменения переменных среды
-
-
2
Установить исходный пакет с Puppet
-
1
Кукольный модуль stdlib file_line не имеет эффекта
-
1
Facter не показывает некоторую информацию
-
1
Безопасно ли удалять пользователя puppet после удаления puppet и puppet-common?
-
2
Используйте sudo unonjunction с ключом ssh обычного пользователя
-
1
кукла "Отказ в соединении"
-
2
Как удалить Puppet из Mac OS X?