Некоторые люди, с которыми я работаю, на самом деле дают каждой среде Puppet свое собственное $modulepath
, но также имеют общие $modulepath
.
Пожалуйста, найдите пример этого ниже:
[redis]
modulepath = /usr/share/puppet/modules:/etc/puppet/modules:/etc/puppet/environments/redis/modules/
manifest=/etc/puppet/environments/redis/manifests/site.pp
Я не уверен, что это разумно, но я хотел спросить: «Как правильно это сделать?»
Я открыт для ответов с точки зрения Puppet, а также с точки зрения управления конфигурацией в целом.
На самом деле это довольно специфично. Если мне нужен модуль Redis для одной среды, модуль statsd для другой и модуль Apache для всех, могу ли я справиться с этим, задав пути к модулям? Нужно ли мне?
Прежде всего, это не предназначение для сред в Puppet. Так что да, в первую очередь я считаю это плохой практикой. Ваши среды - это «разработка», «тестирование», «производство» и т. Д.
Что вы, вероятно, хотели бы использовать, это Марионеточные роли и профили с участием R10K.
Я также могу дать вам объяснение того, почему я думаю, что это было сделано (я тоже делал нечто подобное в прошлом): если этот код / настройка были написаны достаточно давно, Puppet не поддерживал роли и профили тогда, поэтому это было обычная практика использования функции среды для всех видов трюков.