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

时间:2013-04-10 09:23:24

标签: puppet

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

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

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

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

我实际打算不做任何“除非”检查,如果该字段尚未设置 - 包括调用“/ bin / false”。

有什么想法?谢谢!

1 个答案:

答案 0 :(得分:5)

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

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