You are previewing Troubleshooting Puppet.
O'Reilly logo
Troubleshooting Puppet

Book Description

Troubleshoot your Puppet infrastructure to leverage your system's performance effectively

About This Book

  • Covers major tools in Puppet deployment

  • Fix catalog compilation problems and deal with issues found in larger deployments, such as scaling and improving performance.

  • A fast-paced guide with real-world examples

  • Who This Book Is For

    If you are a beginner to intermediate Puppet Engineer looking for guidance to help fix problems with your Puppet deployments, this book is for you.

    What You Will Learn

  • Debug your Puppet infrastructure

  • Use APIs to ensure services are working properly

  • Fix catalog compilation issues

  • Solve problems using Hiera tool

  • Detect problems in your environment using PuppetDB tool

  • Learn ways to format code to aid in identifying errors

  • Troubleshoot errors in modules and templates

  • In Detail

    Puppet is a configuration management system written for system administrators to manage a large number of systems efficiently and help maintain order. Deploying Puppet becomes more complex as you increase the number of nodes in your environment. The Puppet tool is an intelligent solution that increases the automation footprint for the proactive management of server infrastructures. Puppet's simple programming language is usable on most operating systems and is portable on different deployment environments.

    We begin by looking at the puppet.conf server configuration file, and talk about possible problems that can occur. What does puppet really do in the background and what options does it provide for troubleshooting? This is what we will explore.

    Moving on, we will be troubleshooting errors made in modules and templates, finding the best solutions. We will be writing code that will helping us in identify errors. Then we will explain how several ENCs do their job and how puppet communicates with them. We will learn how PuppetDB collects data generated by Puppet. It also enables advanced Puppet features like exported resources, and can be the foundation for other applications that use Puppet’s data. By the end of the book we will have learned the best debugging tips for Puppet and PuppetServer.

    Style and approach

    This is a quick-paced guide packed with real-world examples and solutions to obstacles in your Puppet infrastructure.

    Downloading the example code for this book. You can download the example code files for all Packt books you have purchased from your account at If you purchased this book elsewhere, you can visit and register to have the files e-mailed directly to you.

    Table of Contents

    1. Troubleshooting Puppet
      1. Table of Contents
      2. Troubleshooting Puppet
      3. Credits
      4. About the Author
      5. About the Reviewer
        1. Support files, eBooks, discount offers, and more
          1. Why subscribe?
          2. Free access for Packt account holders
      7. Preface
        1. What this book covers
        2. What you need for this book
        3. Who this book is for
        4. Conventions
        5. Reader feedback
        6. Customer support
          1. Errata
          2. Piracy
          3. Questions
      8. 1. Puppet Infrastructure
        1. The lifecycle of a Puppet run
        2. Puppet configuration
        3. puppet help
          1. puppet resource
          2. puppet apply
          3. puppet parser validate
        4. Log files and the catalog
          1. puppet master
          2. puppetserver
          3. jq
        5. Communication issues
          1. Network-related problems
          2. Netcat
          3. SSL-related problems
        6. Summary
      9. 2. Writing Puppet Manifests
        1. Writing code
        2. Editors
          1. Vim
          2. Emacs
          3. Geppetto
        3. puppet-lint
        4. Testing code
          1. Validating code
          2. Vagrant
        5. Committing code
        6. Git hooks
        7. Using environments
          1. Personal branches
        8. Summary
      10. 3. Modules and Templates
        1. Metaparameters
        2. Autorequires
        3. Explicit ordering
        4. Defined types
        5. Custom facts
          1. Pry
          2. Environment
        6. Files
        7. Templates
          1. Debugging templates
        8. Summary
      11. 4. Hiera and External Node Classifiers
        1. YAML files
        2. JSON
        3. Hiera
          1. Permissions
          2. PuppetDB
          3. Debug
          4. strace
          5. puppet apply
        4. External node classifiers – ENCs
          1. The Foreman
            1. The Foreman proxy
          2. Puppet Enterprise
          3. LDAP
        5. Summary
      12. 5. The Marionette Collective
        1. Architecture
        2. ActiveMQ configuration
          1. JMX
        3. ActiveMQ and resource limits
        4. Using mco
          1. Ping works, nothing else
          2. Facts
          3. Discovery timeout
        5. Debugging and logging
        6. Direct addressing
          1. Time synchronization
        7. Summary
      13. 6. PuppetDB and Puppet Server
        1. PuppetDB
        2. Puppet Server
        3. Debugging Ruby
          1. Logging
          2. Reports
          3. Time
        4. Summary
      14. 7. Help Me!
        1. Puppet Forge/GitHub
        2. Community help
        3. IRC channels
        4. Puppet user groups
        5. Puppet Labs
        6. Summary
      15. Index