Book Image

Mastering Puppet - Second Edition

By : Thomas Uphill
Book Image

Mastering Puppet - Second Edition

By: Thomas Uphill

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)

Exported SSH keys


Most exported resource documentation starts with an SSH key example. sshkey is a Puppet type that creates or destroys entries in the ssh_known_hosts file used by SSH to verify the validity of remote servers. The sshkey example is a great use of exported resources, but since most examples put the declaration and collecting phases in the same class, it may be a confusing example for those starting out learning exported resources. It's important to remember that exporting and collecting are different operations.

sshkey collection for laptops

We'll outline an enterprise application of the sshkey example and define a class for login servers—any server that allows users to log in directly. Using that class to define exported resources for ssh_host_keys, we'll then create an ssh_client class that collects all the login server ssh_keys. In this way, we can apply the ssh_client class to any laptops that might connect and have them get updated SSH host keys. To make this an interesting...