Puppet:在实现导出资源时可以提供附加信息吗?

Puppet:在实现导出资源时可以提供附加信息吗?

假设我想hostB为每个 puppet 节点创建一个不同的文件,但只有 知道所有者hostB

hostB理论上,如果我们允许编写自定义事实(my_special_owner),然后通过定义query_facts中的函数读取该事实,则可以做到这一点。但这似乎太肮脏了:它会用无意义的东西污染事实命名空间,可能会导致名称冲突。对于这样一件简单的事情,它也需要大量的编码。my_resourcehostA

以下是我心中的设想的模型:

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}
}

答案1

本节有关自定义收集器属性的 Puppet 文档。示例:

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

相关内容