Назад | Перейти на главную страницу

Шаблоны марионеток и переменные undefined / nil

Я часто хочу включать значения по умолчанию в шаблоны Puppet. Я надеялся, что получил такой класс:

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

Я мог бы сделать такой шаблон:

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

К сожалению, undef в Puppet не переводится на Ruby nil value в контексте шаблона, поэтому на самом деле это не работает. Каков канонический способ обработки значений по умолчанию в шаблонах Puppet?

Я могу установить значение по умолчанию для пустой строки, а затем использовать empty? тест...

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

... но это кажется немного неуклюжим.

Не могли бы вы просто установить значение по умолчанию в определении класса?

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