Book Image

Puppet 5 Essentials - Third Edition

By : Martin Alfke, Felix Frank
Book Image

Puppet 5 Essentials - Third Edition

By: Martin Alfke, Felix Frank

Overview of this book

Puppet is a configuration management tool that allows you to automate all your IT configurations, giving you control over what you do to each Puppet Agent in a network, and when and how you do it. In this age of digital delivery and ubiquitous Internet presence, it's becoming increasingly important to implement scaleable and portable solutions, not only in terms of software, but also the system that runs it. This book gets you started quickly with Puppet and its tools in the right way. It highlights improvements in Puppet and provides solutions for upgrading. It starts with a quick introduction to Puppet in order to quickly get your IT automation platform in place. Then you learn about the Puppet Agent and its installation and configuration along with Puppet Server and its scaling options. The book adopts an innovative structure and approach, and Puppet is explained with flexible use cases that empower you to manage complex infrastructures easily. Finally, the book will take readers through Puppet and its companion tools such as Facter, Hiera, and R10k and how to make use of tool chains.
Table of Contents (10 chapters)


In this book, you will find a number of text styles that distinguish between different kinds of information. Here are some examples of these styles and an explanation of their meaning.

Code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles are shown as follows: "The file resource type will return mtime and ctime."

A block of code is set as follows:

node 'agent' {
$packages = [ 'apache2', 'libapache2-mod-php5', 'libapache2-mod-passenger', ]
package { $packages:
ensure => 'installed',
before => Service['apache2'],
service { 'apache2':
ensure => 'running',
enable => true,

When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:

service { 'puppet': enable => false }
cron { 'puppet-agent-run':
user => 'root',
command =>
'puppet agent --no-daemonize --onetime --
minute => fqdn_rand(60),
hour => absent,

Any command-line input or output is written as follows:


New terms and important words are shown in bold. Words that you see on the screen, for example, in menus or dialog boxes, appear in the text like this: "If you are looking for a module that will enhance your agents through additional resource types and providers, look for the Types tab on the module details page. "

Warnings or important notes appear like this.
Tips and tricks appear like this.