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

Puppet:定义自定义资源类型包装exec资源并使用可选的;除非;,puppet,Puppet,下面的代码示例纯粹是学术性的,但它很好地说明了我的问题 define touch($file=$title, $unless='/bin/false') { exec { "/bin/touch ${file}": unless => $unless } } 如果我定义了自己的资源类型来包装另一个exec资源,并且我想添加一个可选的“除非”条件,那么我-如果设置-传递到exec的可选“除非”条件-我是否必须用“/bin/false”预设字段 我的理解是,如果未设置“touch”的

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

define touch($file=$title, $unless='/bin/false') {
    exec { "/bin/touch ${file}": unless => $unless }
}
如果我定义了自己的资源类型来包装另一个exec资源,并且我想添加一个可选的“除非”条件,那么我-如果设置-传递到exec的可选“除非”条件-我是否必须用“/bin/false”预设字段

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

我实际上不打算做任何“除非”检查字段是否未设置-包括调用“/bin/false”


有什么想法吗?谢谢

使用undef而不是'/bin/false',除非仅当设置为:

define touch($file=$title, $unless=undef) {
    exec { "/bin/touch ${file}": unless => $unless }
}

使用undef而不是“/bin/false”,除非仅当设置为以下值时才会运行:

define touch($file=$title, $unless=undef) {
    exec { "/bin/touch ${file}": unless => $unless }
}