与我一起工作的一些人实际上为每个 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 with R10K。
我可以给你的也是对我认为这样做的原因的解释(我过去也做过类似的事情):如果这段代码/设置是在足够长的时间之前编写的,那么 Puppet 那时不支持角色和配置文件,所以它是将环境功能用于各种技巧的常见做法。