Kann eine Puppet-Vorlage ab Version 0.24.8 eine Puppet-Funktion aufrufen?
Ich kann ähnliche Funktionen erhalten, indem ich die Funktion in meinem Manifest aufrufe, den Rückgabewert einer Variablen zuordne und dann die Lookupvar ('Variable') in der Vorlage verwende, aber ich möchte den mittleren Mann ausschneiden.
<%= scope.function_template("sites/$domain/config.erb") %>
<%= scope.function_template("sites/#{domain}/config.erb") %>
.Lassen Sie mich die Frage auch auf benutzerdefinierte Funktionen ausweiten . Grundsätzlich rufen Sie benutzerdefinierte Funktionen wie integrierte Funktionen auf (mit dem Präfix function_), aber stellen Sie sicher, dass Sie alle Parameter in einem Array übergeben:
Bitte beachten Sie, dass es bei einigen Puppet-Versionen auch ohne eckige Klammern funktioniert. Weitere Informationen: http://docs.puppetlabs.com/guides/custom_functions.html#referencing-custom-functions-in-templates
Eine andere wichtige Sache ist, dass es einen Fehler (oder eine Funktion) in Puppet 2.6 oder älter gibt, bei dem benutzerdefinierte Funktionen nicht automatisch in den Vorlagenbereich geladen werden. Sie müssen manuell geladen werden , da sonst keine Funktion gefunden wird!
Weitere Informationen: http://projects.puppetlabs.com/issues/7991
quelle
Ich bin mir nicht ganz sicher, was Sie mit einer Puppet-Funktion meinen, aber Puppet-Vorlagen sind in Ruby eingebettet, sodass Sie in den Vorlagen alles tun können, was Sie in Ruby können.
quelle