Начиная с версии 0.24.8, может ли шаблон Puppet вызывать функцию Puppet?
Я могу получить аналогичную функциональность, вызвав функцию в моем манифесте, присвоив возвращаемое значение переменной, а затем используя lookupvar ('variable') в шаблоне, но я бы хотел исключить посредника.
<%= scope.function_template("sites/$domain/config.erb") %>
<%= scope.function_template("sites/#{domain}/config.erb") %>
.Позвольте мне распространить вопрос также на пользовательские функции . По сути, вы вызываете пользовательские функции так же, как встроенные функции (используя префикс function_), но убедитесь, что вы передаете все параметры в массиве:
Обратите внимание, что это также работает без квадратных скобок в некоторых версиях Puppet. Дополнительная информация: http://docs.puppetlabs.com/guides/custom_functions.html#referencing-custom-functions-in-templates
Другая важная вещь - это ошибка (или функция) в Puppet 2.6 или более ранней версии, когда пользовательские функции не загружаются автоматически в область действия шаблона. Вам нужно загрузить их вручную , иначе функция не будет найдена!
Дополнительная информация: http://projects.puppetlabs.com/issues/7991
источник
Я не совсем уверен, что вы подразумеваете под функцией Puppet, но шаблоны кукол встроены в Ruby, так что вы можете делать с шаблонами все, что можете в Ruby.
источник