Book description
Leverage Puppet 5 for medium to large scale enterprise deployment.
Key Features
- Use and deploy Puppet 5, irrespective the size of your organization
- Scaling, performance improvements, and managing multiple developer requests
- Troubleshooting techniques, tips and tricks to make the most of Puppet 5
Book Description
Puppet is a configuration management system and a language written for and by system administrators to manage a large number of systems efficiently and prevent configuration drift.
The core topics this book addresses are Puppet's latest features and mastering Puppet Enterprise. You will begin by writing a new Puppet module, gaining an understanding of the guidelines and style of the Puppet community. Following on from this, you will take advantage of the roles and profiles pattern, and you will learn how to structure your code. Next, you will learn how to extend Puppet and write custom facts, functions, types, and providers in Ruby, and also use the new features of Hiera 5. You will also learn how to configure the new Code Manager component, and how to ensure code is automatically deployed to (multiple) Puppet servers. Next, you will learn how to integrate Puppet with Jenkins and Git to build an effective workflow for multiple teams, and use the new Puppet Tasks feature and the latest Puppet Orchestrator language extensions. Finally, you will learn how to scale and troubleshoot Puppet.
By the end of the book, you will be able to deal with problems of scale and exceptions in your code, automate workflows, and support multiple developers working simultaneously.
What you will learn
- Solve problems using modules and the roles and profiles pattern
- Extend Puppet with custom facts, functions, types, and providers
- Use Hiera 5 and Code Manager/r10k to separate code from data
- Continuously integrate your code using Jenkins, Git and automated testing
- Use exported resources and the new Puppet Orchestration features
- Explore Puppet Discovery features and their use
- Troubleshoot various parts of the Puppet Enterprise infrastructure
- Scale up and scale out Puppet infrastructure using various techniques
Who this book is for
If you are a system administrator or developer who has used Puppet in production and are looking for ways to easily use Puppet in an enterprise environment, this book is for you. Some knowledge of writing simple configuration management modules would be necessary.
Table of contents
- Title Page
- Copyright and Credits
- Dedication
- Packt Upsell
- Contributors
- Preface
-
Authoring Modules
- Using a decent IDE and plugins
- Using good module and class structure
- Using the new Puppet Development Kit commands
- Validating your module
- Unit testing your module
- Staying on the lookout for code smells
- Working with dead code
- Using Puppet Forge
- Working with the community
- Writing great documentation
- Adding module dependencies
- Adding compatibility data for your modules
- Using the new Hiera 5 module level data
- Summary
-
Roles and Profiles
- Summary of the pattern
-
Profiles
-
Profiles best practices summary
- Designing for use of the include keyword
- Using subdirectories for sensible, readable profile class groups
- Hiding complexity with parameters, defaults, and abstraction
- Deciding how to set the parameters for component classes
- Deciding to use either automatic class parameter lookup or the lookup function
-
Profiles best practices summary
- Roles
- Summary
-
Extending Puppet
- Custom facts
- Custom functions
-
Types and providers
-
Types
- Creating and distributing the type
- Adding the namevar special attribute
- Adding additional type properties
- Adding the optional ensure property
- Adding type parameters
- Setting property and parameter defaults
- Checking the input value with a validate block
- Checking the input value against a newvalues array
- Checking datatype compatibility with munge
- Using autorequire for implicit relationships
- Using arrays to assign a list of values to an attribute
- Using the desc method to add inline documentation
- Providers
-
Types
- Summary
-
Hiera 5
- Separation of concerns between code and data
- Introducing a frame for the environment
- A more complete hierarchy
- Hiera 5 summary
- Global, environment, and module layers
- Encrypted YAML backend
- Lookup function
- Debugging Hiera
-
Beyond Hiera using Jerakia
-
Jerakia advanced use cases
- Installing Jerakia
- Configuring Jerakia
- Creating your default Jerakia policy
- Using Vault as an encryption backend
- Installing and configuring Vault
- Unsealing Vault
- Enabling the transit backend
- Creating an encryption key
- Creating a policy for encrypting and decrypting
- Checking the encryption is working correctly
- Allowing Jerakia to authenticate with our Vault
- Configuring Jerakia for encryption
- Encryption-enabling our Jerakia lookups
-
Jerakia advanced use cases
- Summary
- Managing Code
- Workflow
- Continuous Integration
- Extending Puppet with Tasks and Discovery
- Exported Resources
- Application Orchestration
- Scaling Puppet
- Troubleshooting and Profiling
- Other Books You May Enjoy
Product information
- Title: Mastering Puppet 5
- Author(s):
- Release date: September 2018
- Publisher(s): Packt Publishing
- ISBN: 9781788831864
You might also like
book
Mastering Puppet - Second Edition
Master Puppet for configuration management of your systems in an enterprise deployment About This Book This …
book
Learning Puppet 4
If you're a system administrator, developer, or site reliability engineer responsible for handling hundreds or even …
book
Puppet 5 Essentials - Third Edition
A Guide to managing servers and automation About This Book Breeze through Puppet's key features and …
book
Puppet 5 Beginner's Guide - Third Edition
Puppet 5 Beginner’s Guide, Third Edition is a practical guide that gets you up and running …