假设我想定义一组彼此依赖的资源,依赖资源应该重用其祖先的参数。像这样:
server { 'my_server':
path => '/path/to/server/root',
...
}
server_module { 'my_module':
server => Server['my_server'],
...
}
server_module
资源都依赖于my_server
,但也想重用它的配置,在这种情况下是安装服务器的路径。 stdlib
具有执行此操作的功能,具体为getparam()
。
这是处理这种情况的“傀儡”方式,还是有更好的方式来实现这种依赖?
答案 0 :(得分:3)
我认为没有标准的“傀儡方式”来做到这一点。如果您可以使用stdlib完成它并且您对它感到满意,那么无论如何都要这样做。
就个人而言,如果我有两个需要相同数据的已定义资源,我将执行以下操作之一:
1)拥有一个可以创建两个资源的清单,并通过参数传递所需的数据。无论是否共享,清单都可以访问资源所需的所有数据。
2)让两个定义的资源都在Hiera中查找所需的数据。
我最近更倾向于#2。
依赖性只是宣告它的问题。所以你的server_module资源会有一个“require => Server ['my_server']”参数---或者服务器资源会有一个“before => Server_module ['my_module']”。