Czy od wersji 0.24.8 szablon Puppet może wywoływać funkcję Puppet?
Mogę uzyskać podobną funkcjonalność, wywołując funkcję w moim manifeście, przypisując wartość zwracaną do zmiennej, a następnie używając lookupvar („zmiennej”) w szablonie, ale chciałbym wyciąć środkowego człowieka.
<%= scope.function_template("sites/$domain/config.erb") %>
<%= scope.function_template("sites/#{domain}/config.erb") %>
.Pozwolę sobie rozszerzyć pytanie również na funkcje niestandardowe . Zasadniczo wywołujesz funkcje niestandardowe w taki sam sposób, jak funkcje wbudowane (używając prefiksu function_), ale upewnij się, że przekazałeś wszystkie parametry w tablicy:
Pamiętaj, że działa również bez kwadratowych nawiasów klamrowych w niektórych wersjach Puppet. Więcej informacji: http://docs.puppetlabs.com/guides/custom_functions.html#referencing-custom-functions-in-templates
Inną ważną rzeczą jest błąd (lub funkcja) w Puppet 2.6 lub starszym, w którym funkcje niestandardowe nie są automatycznie ładowane do zakresu szablonu. Musisz załadować je ręcznie , w przeciwnym razie funkcja nie zostanie znaleziona!
Więcej informacji: http://projects.puppetlabs.com/issues/7991
źródło
Nie jestem do końca pewien, co masz na myśli przez funkcję marionetki, ale szablony marionetek są osadzone w Ruby, więc możesz zrobić wszystko w szablonach, co możesz w Ruby.
źródło