在其他定义类型中重用Puppet定义的类型参数

时间:2014-03-21 21:09:42

标签: puppet

假设我想定义一组彼此依赖的资源,依赖资源应该重用其祖先的参数。像这样:

server { 'my_server':
  path => '/path/to/server/root',
  ...
}

server_module { 'my_module':
  server => Server['my_server'],
  ...
}

server_module资源都依赖于my_server,但也想重用它的配置,在这种情况下是安装服务器的路径。 stdlib具有执行此操作的功能,具体为getparam()

这是处理这种情况的“傀儡”方式,还是有更好的方式来实现这种依赖?

1 个答案:

答案 0 :(得分:3)

我认为没有标准的“傀儡方式”来做到这一点。如果您可以使用stdlib完成它并且您对它感到满意,那么无论如何都要这样做。

就个人而言,如果我有两个需要相同数据的已定义资源,我将执行以下操作之一:

1)拥有一个可以创建两个资源的清单,并通过参数传递所需的数据。无论是否共享,清单都可以访问资源所需的所有数据。

2)让两个定义的资源都在Hiera中查找所需的数据。

我最近更倾向于#2。

依赖性只是宣告它的问题。所以你的server_module资源会有一个“require => Server ['my_server']”参数---或者服务器资源会有一个“before => Server_module ['my_module']”。