Puppet:定义包装exec资源的自定义资源类型并使用可选的"除非"

use*_*712 0 puppet

下面的代码示例纯粹是学术性的,但它很好地说明了我的问题.

define touch($file=$title, $unless='/bin/false') {
    exec { "/bin/touch ${file}": unless => $unless }
}
Run Code Online (Sandbox Code Playgroud)

如果我定义我自己的包装另一个exec资源的资源类型,并且我想添加一个可选的"除非"条件,我 - 如果设置 - 传递给exec的可选"除非"条件- 我是否必须使用'/预设字段斌/假"?

我的理解是,对于每个目录运行和此自定义资源的所有使用类型此资源,除非检查将生成运行'/ bin/false'的bash进程,如果尚未设置"touch"的除非字段.

如果字段尚未设置,我实际上打算不进行任何"除非"检查 - 包括调用"/ bin/false".

有什么想法吗?谢谢!

Ger*_*osi 5

使用undef而不是'/ bin/false',除非只有在设置时才运行:

define touch($file=$title, $unless=undef) {
    exec { "/bin/touch ${file}": unless => $unless }
}
Run Code Online (Sandbox Code Playgroud)