2

我有一个 puppet 环境,我需要将可变数量的非常相似的对象添加到单个服务器。对象仅因名称和路径等属性而异,所有这些都可以从单个名称参数中推断出来。

这似乎是 puppet 资源定义的完美用途,因为可以将多个定义添加到单个服务器,并且可以从定义名称声明中获取它们的特定属性。

此设置对我来说效果很好,并且在多台服务器上启动和运行它没有任何问题。但是,我现在需要将其交给几乎没有脚本编写经验的操作部门,因此他们不太习惯从文件系统进行管理。

他们要求一个仪表板,所以我为他们设置了 puppet 仪表板。然而,在我设置仪表板之后,我发现它只支持向服务器添加类,而不支持定义。这对于 PuppetLabs 的人来说似乎是短视的,所以我只能认为我以错误的方式处理这个问题,并且必须有一个使用类的解决方案,从而可以将多个几乎相同的实体添加到单个节点。

我意识到我可以为每个实体创建一个类,但是有成百上千的潜在变化,所以这并不实用。

我还考虑了一个包装类,它在每个节点的基础上声明每个定义,但这似乎比它的价值要管理更多的工作。

任何有关与仪表板兼容的替代方法的想法将不胜感激。

4

1 回答 1

0

要使仪表板等 ENC 以这种方式工作,您必须以节点变量的形式传入节点数据。请注意,Hiera通常比普通节点变量更可取。

通常,您要提交的值是您的资源标题数组

$resources = [ "name1", "name2", ... ]

然后使用(至少)一个使用此数据实例化您定义的类型的类对您的节点进行分类,例如

class my_resources {
    my_defined_type { $resources: }
}
于 2014-05-05T15:13:47.003 回答