Using templates in your manifests
Since the end result of a template is a file, you won't be surprised that we use Puppet's file
resource to work with templates. In fact, we use an attribute of the file
resource that you've seen before: the content
attribute.
Referencing template files
Recall from
Chapter 2, Creating your first manifests, that you can use the content
attribute to set a file's contents to a literal string:
file { '/tmp/hello.txt': content => "hello, world\n", }
And, of course, you can interpolate the value of Puppet expressions into that string:
file { "/usr/local/bin/${task}": content => "echo I am ${task}\n", mode => '0755', }
So far, so familiar, but we can take one further step and replace the literal string with a call to the epp()
function (file_epp.pp
):
file { '/usr/local/bin/backup': content => epp('/examples/backup.sh.epp', { 'data_dir'...