Book Image

Puppet 5 Beginner's Guide - Third Edition

By : John Arundel
Book Image

Puppet 5 Beginner's Guide - Third Edition

By: John Arundel

Overview of this book

Puppet 5 Beginner’s Guide, Third Edition gets you up and running with the very latest features of Puppet 5, including Docker containers, Hiera data, and Amazon AWS cloud orchestration. Go from beginner to confident Puppet user with a series of clear, practical examples to help you manage every aspect of your server setup. Whether you’re a developer, a system administrator, or you are simply curious about Puppet, you’ll learn Puppet skills that you can put into practice right away. With practical steps giving you the key concepts you need, this book teaches you how to install packages and config files, create users, set up scheduled jobs, provision cloud instances, build containers, and so much more. Every example in this book deals with something real and practical that you’re likely to need in your work, and you’ll see the complete Puppet code that makes it happen, along with step-by-step instructions for what to type and what output you’ll see. All the examples are available in a GitHub repo for you to download and adapt for your own server setup.
Table of Contents (21 chapters)
Puppet 5 Beginner's Guide Third Edition
Credits
About the Author
Acknowledgments
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface
Index

Classes


We've come across the class concept a few times so far in this book, without really explaining it. Let's explore a little further now and see how to use this key Puppet language building block.

The class keyword

You may have noticed that in the code for our example NTP module in Chapter 7, Mastering modules (in the Writing the module code section), we used the class keyword:

class pbg_ntp {
  ...
}

If you're wondering what the class keyword does, the surprising answer is nothing at all. Nothing, that is, except inform Puppet that the resources it contains should be grouped together and given a name (pbg_ntp), and that these resources should not be applied yet.

You can then use this name elsewhere to tell Puppet to apply all the resources in the class together. We declared our example module by using the include keyword:

include ntp

The following example shows a class definition, which makes the class available to Puppet, but does not (yet) apply any of its contained resources:

class CLASS_NAME...