我对Puppet相对来说比较陌生,最近又inheritance了一个非常大的基础设施(许多RHEL 6机器上的Puppet 3.6)。
我的Puppet基础结构看起来有点像这样:
我有my_module :: mysql,它将安装和configurationMySQL(基于从仪表板或包含它的其他类传递给它的参数)。 在许多其他事情中,它设置日志文件的位置。 (还有一些类似的类,有时这个类可能在同一个节点上被称为几种不同的方法。)
我现在有了my_module :: flume,它可以安装和configurationApache Flume,所以我可以在别处发布一些日志。
我的问题是:我需要my_module :: flume来知道my_module :: mysql的每个实例在哪里放置它的日志文件,所以它可以将它们添加到Flumeconfiguration文件中。
做这个的最好方式是什么? 我想我可以添加到某种types的资源(一个全局variables或文件),每个类可以添加一个文件path,所以my_module :: flume可以迭代通过列表,并将每个path添加到configuration文件,但我不知道如何做到这一点,同时仍然确保:
每次运行Puppet时都会启动日志文件列表(例如,不存在的日志文件不在列表中)。
Flume类只有在所有其他类已将path添加到列表之后才被评估。
任何input将不胜感激。
你应该
my_module::mysql每个实例都创build一个虚拟 concat片段 my_module::flume实现所有这些虚拟片段 这可能足以解决整个问题。