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

Connecting Puppet Agent with Puppet Master


Before Puppet Agent can connect to Puppet Master, it has to find out the host name of the Puppet Master and that host name must resolve an IP address that belongs to the Puppet Master node. Our Puppet Master is currently configured to acquire an IP address from DHCP server. This is not ideal because if the IP address changes on the Puppet Master node, we have to reconfigure Puppet Agents to make the connection to Puppet Master work again. To avoid this problem, it is good practice to configure Puppet Master with a static IP address.

We will also create a new environment on the Puppet Master node and configure Agent nodes to join this environment. As we have to do couple of tweaks on the Puppet Master node as well as on the Puppet Agent nodes, I feel that it's best that we consolidate all the bootstrap logic in a new Puppet module, which we'll call the bootstrap.

Creating the bootstrap module for Puppet Master and Puppet Agent

The module bootstrap will...