![Puppet 模板和未定义/零变量](https://linux22.com/image/581030/Puppet%20%E6%A8%A1%E6%9D%BF%E5%92%8C%E6%9C%AA%E5%AE%9A%E4%B9%89%2F%E9%9B%B6%E5%8F%98%E9%87%8F.png)
我经常想在 Puppet 模板中包含默认值。我希望给出这样的类:
class myclass ($a_variable=undef) {
file { '/tmp/myfile':
content => template('myclass/myfile.erb'),
}
}
我可以制作这样的模板:
a_variable = <%= a_variable || "a default value" %>
不幸的是,undef
在 Puppet 中,它不会nil
在模板上下文中转换为 Ruby 值,因此这实际上不起作用。在 Puppet 模板中处理默认值的规范方法是什么?
我可以将默认值设置为空字符串,然后使用测试empty?
......
a variable = <%= a_variable.empty? ? "a default value" : a_variable %>
...但这看起来有点笨重。
答案1
你不能在类定义中设置一个默认值吗?
class myclass ($a_variable = "a default value") {