Summary
In this chapter, we've looked at one of the most powerful tools in Puppet's toolbox, the template file. We've examined the EPP tag syntax and seen the different kinds of tag available, including printing and non-printing tags.
We've learned that not only can you simply insert values from variables into templates, but also you can include or exclude whole blocks of text, depending on the value of Puppet expressions, or generate templates of arbitrary size by iterating over arrays and hashes.
We've looked at some real-life examples of dynamically generating config files from Facter and Hiera data, and seen how to declare typed parameters in the template file, and pass in values for those parameters when calling the epp()
function in your Puppet manifest.
We've seen how to check the syntax of templates using puppet epp validate
, and how to render the output of a template using puppet epp render
, passing in canned values for the template parameters using ...