Oct 232013


I recently read this book and I must say that it was really interesting and inspiring while preparing a new solution with Puppet 3, as the abstract say

Puppet 3 Cookbook is written in a Cookbook style, showing you how to set up and expand your Puppet infrastructure. It not only gives you everything you need to become a Puppet expert, but includes powerful code samples and techniques developed over many years of production experience. With it, you’ll save time and effort by automating tedious manual processes, impress your boss by delivering better business value from IT, and future-proof your career by getting to grips with the new technologies revolutionizing the industry.””Puppet 3 Cookbook”” is for anyone who builds and administers servers

These are some tips that I’ve found particularly useful

Chapter 1 Puppet Infrastructure

In this chapter you’ll see, in short, how to install the puppet server and there is a detailed explanation on how to put your manifests under GIT and use hooks to do some automatic tasks (check syntax ), why you should use git ?
Keep important files under a Version Control System it’s always a good idea and the book give 4 specific reasons to use Git with Puppet:

  • You can undo changes and revert to any previous version of your manifest
  • You can experiment with new features using a branch
  • If several people need to make changes to the manifests, they can make them independently, in their own working copies, and then merge their changes later
  • You can use the git log feature to see what was changed, and when (and by whom)

Chapter 2: Puppet Language and Style & Chapter 3: Writing Better Manifests

In these 2 chapter you’ll find a quick reference to all puppet constructs and syntax and also a good guide to write “better manifest” using community Puppet style a set of best practice that governs such aspects of your code as layout, spacing, quoting, alignment, and variable references. Also don’t forget the useful puppet-lint if you decide to follow these guidelines (and I strongly suggest to do so).

Chapter 4 Working with Files and Packages

In this chapter you’ll see how to make small edits to files, how to make larger changes in a structured way using the Augeas tool, how to construct files from concatenated snippets, and how to generate files from templates. You’ll also learn how to install packages from additional repositories, and how to manage those repositories. In addition, you’ll see how to store and decrypt secret data with Puppet.

Chapter 6 Applications

Without applications, a server is just a very expensive space heater. In this chapter, you’ll see some recipes for managing some specific software with Puppet: MySQL, Apache, Nginx, and Ruby.

These are common applications so the recipes will be useful to you in themselves. However, the patterns and techniques they use are applicable to almost any software, so you can adapt them to your own purposes without much difficulty. One point to watch is that package names will often be different from one Linux distribution to the next (mysqld instead of mysql-server, for example).

So check with your distribution to find out the correct name for a given package. The name of the service and the location of the config files for a package may also vary depending on the packager’s preferences. The logic of the Puppet manifests, however, shouldn’t be affected by these local differences. If you need to make your manifest portable across distributions, you could use a mechanism like Hiera to abstract out these variations.

Chapter 8 External Tools and the Puppet Ecosystem

Puppet is a useful tool by itself, but you can get much greater benefits from using Puppet in combination with other tools and frameworks. In this chapter you’ll see some ways of getting data into Puppet, including custom Facter facts, external facts, and Hiera databases, and tools to generate Puppet manifests automatically from existing configuration.

You’ll also learn how to extend Puppet by creating your own custom functions, resource types, and providers; how to use an external node classifier script to integrate Puppet with other parts of your infrastructure; how to use public modules from Puppet Forge; and how to test your code with rspec-puppet.

In general I’ve loved this chapter as it show a lot of possibility to make the manifests more dynamic with Hiera and create custom facts.


The book is organized into a set of recipes addressing the most common problems you have with puppet.
I think the whole of this book point is about being practical and offer solutions that you can consider for your setup, sometimes you’ll find some “quick and dirty” solution, or maybe a good strategy to configure a part of your infrastructure.

A thing you can be sure it’s that the book includes powerful code samples and techniques developed over many years of production experience that you can use “out of the box” in your infrastructure.

Popular Posts:

Flattr this!

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>