We will start by constructing a module for a web server (this example is a cliché). What is a web server? Is a web server an Apache server or a Tomcat server or both, or maybe even Nginx? What file systems are required? What firewall rules should be applied, always? The design problem is figuring out what the commonalities are going to be and where to divide them. In most enterprises, creating a blanket "web server" module won't solve any problems and will potentially generate huge case statements. If your modules follow the roles-and-profiles design pattern, you shouldn't need huge case statements keyed off $::hostname
; nodes shouldn't be mentioned in your role module. To elaborate this point further, let's take a look at an example of our companies' Content Delivery Network (CDN) implementation. The nodes in the CDN will be running Nginx.
Mastering Puppet - Second Edition
By :
Mastering Puppet - Second Edition
By:
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)
Mastering Puppet Second Edition
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface
Free Chapter
Dealing with Load/Scale
Organizing Your Nodes and Data
Git and Environments
Public Modules
Custom Facts and Modules
Reporting and Orchestration
Exported Resources
Roles and Profiles
Troubleshooting
Index
Customer Reviews