Book Image

LEARNING PUPPET

By : Jussi Heinonen
Book Image

LEARNING PUPPET

By: Jussi Heinonen

Overview of this book

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.
Table of Contents (12 chapters)
11
Index

Creating a Nagios module for the client and server

In Chapter 3, My First Puppet Module, we practiced creating our first Puppet module for the web server that was deployed by the class called webapp. Now, we'll create another module for Nagios that incorporates a parent class called nagios and two subclasses, one for the Nagios Server called nagios::server and another for the Nagios Client called the nagios::client.

Puppet dictates the class names that we can use within the module. Let's take an example of the class nagios::server that we will create. The double colon (::) notation in the class name acts as a separator between the parent class and the subclass. In this case, server is a subclass of the parent class called nagios. This nagios parent class must reside in the Puppet module called nagios, or else Puppet won't be able to find the class. If you would declare the class nagios inside the webapp class that was created in Chapter 3, My First Puppet Module, and apply...