Book Image

Puppet Cookbook - Third Edition

Book Image

Puppet Cookbook - Third Edition

Overview of this book

Table of Contents (17 chapters)
Puppet Cookbook Third Edition
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
Index

Using defined types


In the previous example, we saw how to reduce redundant code by grouping identical resources into arrays. However, this technique is limited to resources where all the parameters are the same. When you have a set of resources that have some parameters in common, you need to use a defined type to group them together.

How to do it…

The following steps will show you how to create a definition:

  1. Add the following code to your manifest:

      define tmpfile() {
        file { "/tmp/${name}": content => "Hello, world\n",
        }
      }
      tmpfile { ['a', 'b', 'c']: }
  2. Run Puppet:

    [root@hiera-test ~]# vim tmp.pp
    [root@hiera-test ~]# puppet apply tmp.pp 
    Notice: Compiled catalog for hiera-test.example.com in environment production in 0.11 seconds
    Notice: /Stage[main]/Main/Tmpfile[a]/File[/tmp/a]/ensure: defined content as '{md5}a7966bf58e23583c9a5a4059383ff850'
    Notice: /Stage[main]/Main/Tmpfile[b]/File[/tmp/b]/ensure: defined content as '{md5}a7966bf58e23583c9a5a4059383ff850'
    Notice: /Stage[main...