傀儡资源可以引用它自己的一个属性吗?



我有一个Exec资源,它用一些特定的标志/参数启动一个进程。如果确切的进程已经在运行,我不希望它运行。我想我可以引用资源自己的$command属性。但是,这并不奏效……是否有一些方法来引用当前资源?

exec { 'foo':
  command => 'foo --bar baz',
  unless  => "pgrep -f '${command}'",
}

No。There is not.

你可以(也应该)通过在定义的类型中包装exec来解决这个问题。

define safe_exec($command=$name, $parameters = "") {
    exec {
        "$command $parameters":
            unless => "pgrep -f '$command'",
    }
}

资源似乎没有任何方法来引用它自己的属性。您至少可以将该命令提取到适当范围内的一个变量中。

$foo_bar = 'foo --bar baz'
exec { 'foo':
  command => $foo_bar,
  unless  => "pgrep -f '${foo_bar}'",
}

最新更新