Book Image

LEARNING PUPPET

Book Image

LEARNING PUPPET

Overview of this book

Build intelligent software stacks with the Puppet configuration management suite About This Book Develop high-quality Puppet modules in an isolated development environment Manage complex development environments with industry-leading configuration management tool A comprehensive guide to get you started with Puppet development and deployment in virtual environments Who This Book Is For If you are new to configuration management and IT automation processes and are looking for better ways to manage system configuration changes at scale, this book is for you. Basic knowledge of Linux System Administration is a prerequisite. What You Will Learn Manage your system with Puppet instantly Develop Puppet in an isolated development environment Make your manifests reusable to avoid re-inventing the wheel Automate monitoring to improve the user experience through increased uptime Enable nodes to communicate with each other via Puppet Master Make environment configuration dynamic using stored configurations and PuppetDB Extend Puppet beyond the built-in functionalities Manage your environment through the Puppet Enterprise console In Detail Puppet is a cross-platform, open source configuration management utility, which runs on various Unix, Linux, and Windows Microsoft platforms. It allows you to automate all your IT configurations, giving you control of what you do to each node, and also when and how you do it. You’ll be able to build and manage development, test, and production environments independently without requiring previous system administration experience. Learning Puppet is a step-by-step guide on how to get started with Puppet development and use Puppet modules as the building blocks to deploy production-ready application cluster in virtual environment. You will begin with the installation of development environment on the VirtualBox hypervisor and Puppet Learning VM that will be used as the platform for testing and development of Puppet modules. Next, you will learn how to manage virtual machines and snapshots effectively and enhance the development experience with advanced VirtualBox features. Later the book will focus on Puppet module development in detail. You will be guided through the process of utilizing existing modules that are available in the public module repository, write your own modules and use them to deploy a real-world web application that includes features such as monitoring and load balancing. You will then learn to scale your environment and turn your static configuration into a dynamic one through stored configurations and PuppetDB. Finally, the book will provide you with practical advice on Puppet troubleshooting and managing your environment with the wealth of features provided by the Puppet Enterprise console. Style and approach A comprehensive introductory guide to help you manage your infrastructure with Puppet. All instructions and explanations are supported with screenshots and code examples to ensure you get an easy start with Puppet.
Table of Contents (12 chapters)
11
Index

Troubleshooting missing resources


When dealing with files and templates in Puppet modules, it sometimes happens that the reference to a file or a template in the manifest is not correct. Despite many years of puppeteering, I am still struggling to remember whether to use the content or source attribute. If I have to use the source attribute, what is the format of the URL that I must use when pointing to the file in a module? Did it have two or three forward slashes? I give up and use copy and paste instead!

Diagnosing template errors

The problem with copy and paste is that it often contains references to different Puppet modules. This results in Puppet reporting errors saying that Puppet cannot find a particular resource. Here is an example of the error when Puppet fails to find a template that is referenced in the flib/manifests/site.pp file:

The message Error 400 on SERVER: Could not find template 'webapp/timestamp.erb' at /etc/puppetlabs/puppet/environments/development/modules/flib/manifests...