我有一个木偶环境,我需要在单个服务器上添加可变数量的非常相似的对象。对象仅因名称和路径等属性而异,所有这些属性都可以从单个名称参数中推断出来。
这似乎是木偶资源定义的完美用法,因为可以将多个定义添加到单个服务器,并且可以从定义名称声明中获取它们的特定属性。
此设置适用于我,我在几台服务器上运行并运行时没有遇到任何问题。我现在有一个要求,然后把它交给一个几乎没有脚本经验的操作部门,所以他们不太习惯从文件系统管理。
他们要求使用仪表板,因此我为他们设置了木偶仪表板。然而,在我设置仪表板后,我发现它只支持向服务器添加类,而不是定义。对于PuppetLabs的人们来说,这似乎相当短视,所以我只能认为我正在以错误的方式处理这个问题,并且必须有一个使用类的解决方案,从而可以将多个几乎相同的实体添加到单个节点。 / p>
我意识到我可以为每个实体创建一个类,但是有数百个,甚至数千个潜在的变化,所以这不太实用。
我还考虑过一个包装类,它基于每个节点声明每个定义,但这似乎比管理更值得管理。
对于与仪表板兼容的替代方法的任何想法都将受到赞赏。
答案 0 :(得分:0)
要使仪表板等ENC以这种方式工作,您必须以节点变量的形式传递节点数据。请注意,Hiera通常比普通节点变量更可取。
通常,您要提交的值是资源标题数组
$resources = [ "name1", "name2", ... ]
然后使用(至少)一个使用此数据实例化您定义的类型的类对您的节点进行分类,例如
class my_resources {
my_defined_type { $resources: }
}