puppet资源可以引用它自己的属性吗?

时间:2014-08-06 20:49:22

标签: puppet

我有一个Exec资源,它使用一些特定的标志/参数启动进程。如果确切的进程已经运行,我不希望它运行。我以为我可以引用资源自己的$command属性。但是,这确实不起作用...... 有没有办法引用当前资源?

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

2 个答案:

答案 0 :(得分:2)

没有。没有。

您可以(并且应该)通过将exec包装在已定义的类型中来解决此问题。

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

答案 1 :(得分:0)

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

$foo_bar = 'foo --bar baz'

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