Некоторые люди, с которыми я работаю, фактически предоставляют каждой среде 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. Так что да, я бы счел это прежде всего плохой практикой. Ваши среды - это «разработка», «тестирование», «производство» и т. Д.
То, что вы, вероятно, хотели бы использовать, это Puppet Roles and Profiles с R10K .
] То, что я могу вам дать, также является объяснением того, почему я думаю, что это было сделано (я делал нечто подобное в прошлом): если этот код / установка были написаны достаточно давно, Puppet не поддерживал роли и профили тогда, поэтому он было обычной практикой использовать функцию среды для всех видов трюков.