Puppet 在一切完成后或exec完成后执行create_resource
是否可以控制create_resources函数的执行?假设我有一个类和一个定义:Puppet 在一切完成后或exec完成后执行create_resource,puppet,Puppet,是否可以控制create_resources函数的执行?假设我有一个类和一个定义: define do::something($a, $b) { exec { .. } exec { .. } } class do::foo { $params = { 'a' => { .. }, 'b' => { .. } } exec {'I need to run first': ... } create_r
define do::something($a, $b) {
exec { .. }
exec { .. }
}
class do::foo {
$params = {
'a' => { .. },
'b' => { .. }
}
exec {'I need to run first': ... }
create_resources('do::something', $params)
}
在我的例子中,我使用do::something
向键/值存储添加键。但我需要先等待exec
刷新此存储。如果exec
在create\u resources
之后,这些键将不在键/值存储中,因为刷新将删除它们
我尝试过使用
->
方法和notify=>Exec[]
但是我不确定在这种情况下如何传递参数create_resource
有它自己的条件,但每次执行exec
之后都需要调用它,就像所有的Puppet函数一样,create_resources()
在目录构建期间运行。每个目录都是在应用其中声明的任何资源之前完全构建的,并且通常位于不同于其预期用途的机器上。您所追求的似乎不是调整create_resources()
的行为,而是管理添加到目录中的资源的相对应用顺序
你可以用一个链式运营者和一个资源收集者来做。例如,添加
Exec['I need to run first'] -> Do::Something<||>
Exec['I need to run first']->Do::Something
到类的主体do::foo
。在这方面有很多可能的变化,也有一些替代方法,但我需要具体用例的细节来提出更有力或更具体的建议