Book Image

Mastering Puppet - Second Edition

By : Thomas Uphill
Book Image

Mastering Puppet - Second Edition

By: Thomas Uphill

Overview of this book

Puppet is a configuration management system and a language. It was written for and by system administrators to manage large numbers of systems efficiently and prevent configuration drifts. Mastering Puppet deals with the issues faced when scaling out Puppet to handle large numbers of nodes. It will show you how to fit Puppet into your enterprise and allow many developers to work on your Puppet code simultaneously. In addition, you will learn to write custom facts and roll your own modules to solve problems. Next, popular options for performing reporting and orchestration tasks will be introduced in this book. Moving over to troubleshooting techniques, which will be very useful. The concepts presented are useful to any size organization. By the end of the book, you will know how to deal with problems of scale and exceptions in your code, automate workflows, and support multiple developers working simultaneously.
Table of Contents (17 chapters)

Manually installing PuppetDB


The puppetlabs/puppetdb module does a great job of installing PuppetDB and getting you running quickly. Unfortunately, it also obscures a lot of the configuration details. In the enterprise, you'll need to know how all the parts fit together. We will now install PuppetDB manually using the following five steps:

  1. Install Puppet and PuppetDB.

  2. Install and configure PostgreSQL.

  3. Configure PuppetDB to use PostgreSQL.

  4. Start PuppetDB and open firewall ports.

  5. Configure the Puppet master to use PuppetDB.

Installing Puppet and PuppetDB

To manually install PuppetDB, start with a fresh machine and install the puppetlabs-pc1 repository, as in previous examples. We'll call this new server puppetdb-manual.example.com to differentiate it from our automatically installed PuppetDB instance (puppetdb.example.com).

Install Puppet, do a Puppet agent run using the following command to generate certificates, and sign them on the master as we did when we used the puppetlabs/puppetdb module. Alternatively...