Puppet 在一切完成后或exec完成后执行create_resource

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

是否可以控制create_resources函数的执行?假设我有一个类和一个定义:

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
。在这方面有很多可能的变化,也有一些替代方法,但我需要具体用例的细节来提出更有力或更具体的建议