木偶:在实现导出的资源时能否提供额外的信息?

假设我想让hostB为每个puppet节点拥有一个独特的文件,但是hostB只知道hostB

理论上讲,如果我们允许hostB写一个自定义事实( my_special_owner ),然后通过hostAmy_resource定义中的my_resource函数来读取这个事实,那么理论上可以这样做。 但是这似乎太脏了:它污染事实名称空间与无意义的东西,可能会导致名称冲突。 对于这样一个简单的事情也是很多的编码。

以下是我所想到的一个模型:

 define my_resource() { $owner=${my_collector::owner} #This attempt fails file{$name: ensure=>exists, owner=>$owner} } node hostA { @@my_resource{"/tmp/file1.tmp"} } class my_collector($owner) { # How to pass $owner to the collector below? My_resource <<| |>> } node hostB { class {'my_collector': owner=>bob} } 

有关定制收集器属性的信息,请参阅此部分的Puppet文档。 例:

 File <| |> { owner => 'foo', }