Puppet模板和undefined / nilvariables

我经常想在Puppet模板中包含默认值。 我希望给这样一个class:

class myclass ($a_variable=undef) { file { '/tmp/myfile': content => template('myclass/myfile.erb'), } } 

我可以做一个这样的模板:

 a_variable = <%= a_variable || "a default value" %> 

不幸的是,Puppet中的undef没有在模板的上下文中翻译成Ruby nil值,所以这实际上并不起作用。 在Puppet模板中处理默认值的规范方式是什么?

我可以将默认值设置为空string,然后使用empty? testing…

 a variable = <%= a_variable.empty? ? "a default value" : a_variable %> 

但是,这似乎有点笨重。

难道你不能只在类定义中设置一个默认值?

 class myclass ($a_variable = "a default value") {