Puppetテンプレートにデフォルト値を含めたいことがよくあります。私はそれがこのようなクラスを与えられることを望んでいました:
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テンプレートのデフォルト値を処理する標準的な方法は?
デフォルト値を空の文字列に設定してから、empty?
テストを使用できます。
a variable = <%= a_variable.empty? ? "a default value" : a_variable %>
...しかし、それは少し不格好なようです。
クラス定義にデフォルトを設定するだけではいけませんか?
class myclass ($a_variable = "a default value") {