मुझे कस्टम कार्यों के लिए भी प्रश्न का विस्तार करने दें । मूल रूप से, आप कस्टम फ़ंक्शंस को उसी तरह से कॉल करते हैं जैसे बिल्ट-इन फ़ंक्शंस (फ़ंक्शन_ उपसर्ग का उपयोग करके), लेकिन सुनिश्चित करें कि आप किसी सरणी में सभी पैरामन्स पास करते हैं:
module Puppet::Parser::Functions
newfunction(:namegoeshere, :type => :rvalue) do |args|
# ...
end
end
<%= scope.function_namegoeshere(["one","two"]) %>
कृपया ध्यान दें कि यह कुछ कठपुतली संस्करणों पर वर्ग ब्रेसिज़ के बिना भी काम करता है। अधिक जानकारी: http://docs.puppetlabs.com/guides/custom_functions.html#referencing-custom-functions-in-templates
एक और महत्वपूर्ण बात यह है कि पपेट 2.6 या पुराने में एक बग (या सुविधा) है जहां कस्टम फ़ंक्शन टेम्पलेट दायरे में ऑटो-लोड नहीं होते हैं । आपको उन्हें मैन्युअल रूप से लोड करने की आवश्यकता है , अन्यथा फ़ंक्शन नहीं मिलेंगे!
<% Puppet::Parser::Functions::function('namegoeshere') %>
अधिक जानकारी: http://projects.puppetlabs.com/issues/7991