Depuis la 0.24.8, un modèle Puppet peut-il appeler une fonction Puppet?
Je peux obtenir des fonctionnalités similaires en appelant la fonction dans mon manifeste, en attribuant la valeur de retour à une variable, puis en utilisant la variable de recherche ('variable') dans le modèle, mais je voudrais supprimer l'homme intermédiaire.
<%= scope.function_template("sites/$domain/config.erb") %>
<%= scope.function_template("sites/#{domain}/config.erb") %>
.Permettez-moi également d'étendre la question aux fonctions personnalisées . Fondamentalement, vous appelez des fonctions personnalisées de la même manière que les fonctions intégrées (en utilisant le préfixe function_), mais assurez-vous de passer tous les paramètres dans un tableau:
Veuillez noter que cela fonctionne également sans les accolades carrées sur certaines versions de Puppet. Plus d'informations: http://docs.puppetlabs.com/guides/custom_functions.html#referencing-custom-functions-in-templates
Une autre chose importante est qu'il existe un bogue (ou une fonctionnalité) dans Puppet 2.6 ou une version antérieure où les fonctions personnalisées ne sont pas chargées automatiquement dans la portée du modèle. Vous devez les charger manuellement , sinon la fonction ne sera pas trouvée!
Plus d'infos: http://projects.puppetlabs.com/issues/7991
la source
Je ne suis pas tout à fait sûr de ce que vous entendez par une fonction Puppet, mais les modèles de marionnettes sont intégrés Ruby, vous pouvez donc faire n'importe quoi dans les modèles que vous pouvez dans Ruby.
la source