Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Extending Puppet
Table of Contents Extending Puppet Credits Foreword About the Author Acknowledgments About the Reviewers www.PacktPub.com
Support files, eBooks, discount offers, and more
Why subscribe? Free access for Packt account holders
Preface
What this book covers What you need for this book Who this book is for Conventions Reader feedback Customer support
Downloading the example code Errata Piracy Questions
1. Puppet Essentials
The Puppet ecosystem
Why configuration management matters
Puppet components Installation and configuration Puppet in action
Resources
The resource abstraction layer
Nodes Classes and defines
Class inheritance
Resource defaults Resource references Variables, facts, and scopes
System's facts User variables in Puppet DSL User variables in an ENC User variables in Hiera Puppet's built-in variables A variable's scope
Meta parameters Managing order and dependencies
Run stages
Reserved names and allowed characters Conditionals Comparison operators
The In operator Expressions combinations
Exported resources
Virtual resources
Modules
The paths of a module and autoloading ERB templates
Restoring files from a filebucket
Summary
2. Hiera
Installing and configuring Hiera
Global settings Backend-specific settings The hiera.yaml examples
Working with the command line on a YAML backend Using Hiera in Puppet
Dealing with hashes in the Puppet code Puppet 3 automatic parameter lookup Evolving usage patterns for class parameters
Additional Hiera backends
The hiera-file backend The hiera-gpg backend The hiera-eyaml backend The hiera-http and hiera-mysql backends
Using Hiera as an ENC Summary
3. PuppetDB
Installation and configuration
PuppetDB configurations
The init script configuration Configuration settings Logging configuration
Configurations on the Puppet Master
Dashboards
PuppetDB performance dashboard Puppetboard – query PuppetDB from the Web
The PuppetDB API
Querying PuppetDB (Read) The PuppetDB commands (Write)
Querying PuppetDB for fun and profit
The /facts endpoint The /resources endpoint The /nodes endpoint The /catalogs endpoint The /facts-names endpoint The /metrics endpoint The /reports endpoint The /events endpoint The /event-counts endpoint The /aggregated-event-counts endpoint The /server-time endpoint The /version endpoint
The puppetdbquery module
Query format
Query from the command line Query from Puppet manifests The PuppetDB Hiera backend
How Puppet code may change in the future Summary
4. Designing Puppet Architectures
The components of Puppet architecture
Defining the classes to include in each node Defining the parameters to use for each node Defining the configuration files provided to the nodes Defining custom resources and classes
The Foreman Roles and profiles The data and the code Sample architectures
The default approach Basic ENC, logic in the site module, and Hiera backend The Foreman and Hiera The Hiera-based setup The Hiera-only setup Foreman smart variables Fact-driven truths Nodeless site.pp Node inheritance done right
Summary
5. Using and Writing Reusable Modules
The evolution of modules' layouts
Class parameters – from zero to data bindings The params pattern Data in modules Files and class names The anchor pattern
The parameters dilemma
Naming standards
Reusability patterns
Managing files
Managing configuration hash patterns Managing multiple configuration files Managing users and dependencies Managing the installation options Managing extra resources
Summary
6. Higher Abstraction Modules
Understanding the need for higher abstractions The OpenStack example
Component (application) modules Raising abstraction – the official openstack module Raising abstraction – the Puppet Labs OpenStack module Raising abstraction – the scenario-based approach Taking an alternate approach
An approach to reusable stack modules Summary
7. Deploying and Migrating Puppet
Examining the potential scenarios and approaches
New infrastructures Existing manually managed infrastructures
Node migration Node update
Existing automated infrastructures
Upgrading the Puppet Master
Patterns for extending Puppet coverage
Raising the bar, step by step Knowing the territory Defining priorities
Automate servers deployment Automate common configurations Automate the most important roles Refine and automate application deployments Integrate what already works well Automate monitoring
Evaluating solutions Coding Applying changes
Things change
Infrastructure as code
Versioning Reproducibility and predictability Testing Maintenance
Evolution of the system administrator Designing a Puppet-friendly infrastructure
Summary
8. Code Workflow Management
Writing the Puppet code
Geppetto Vim
Git workflows
Git's basic principles and commands Git hooks Environments and branches
Branch-based automatic environments Simplified developer workdir environments
Code review
Gerrit Online resources for peer review
Testing the Puppet code
Using rspec-puppet rspec-system-puppet and Beaker Vagrant
Deploying the Puppet code
Using librarian-puppet for deployments Deploying code with r10k
Propagating Puppet changes Puppet Continuous Integration tools
Travis Jenkins
Summary
9. Scaling Puppet Infrastructures
Scaling Puppet
As simple as puppet apply Default Puppet Master Puppet Master with Passenger
Installing and configuring Passenger
Multi-Master scaling
Managing certificates Managing SSL termination Managing code and data
Load balancing alternatives Masterless Puppet Configurations and infrastructure optimizations
Traffic compression Caching Distributing Puppet execution times Checking the interval for changes in files
Scaling stored configs Measuring performance
Puppet metrics Optimizing code Testing different Puppet versions
Summary
10. Writing Puppet Plugins
Anatomy of a Puppet run, under the hood
ENC and Hiera extendibility Modules' pluginsync Puppet indirector and its termini Custom functions Custom facts
Ruby facts distributed via pluginsync External facts in the facts.d directory
Custom types and providers
Custom report handlers Custom faces Summary
11. Beyond the System
Puppet on a network equipment
A Proxy mode with the puppet device application Native Puppet on the network equipment
Cisco onePK Juniper and netdev_stdlib
Puppet for cloud and virtualization
VMware
VM provisioning on vCenter and vSphere The integration of vCloud Automation Center The configuration of vCenter
Amazon Web Services
Cloud provisioning on AWS
AWS provisioning and configuration with resource types
Managing CloudFormation
Cloud provisioning on Google Compute Engine
Puppet on storage devices Summary
12. Future Puppet
Introducing the future parser
Lambdas and Iterations
Manipulating and validating hashes and arrays Other features
Restrictions and backward incompatibilities Directory environments Heredoc support The new type system
Other new features
EPP Templates The contain function Serialization with MessagePack
Improved error system Data in modules Facter 2 Trapperkeeper Summary
Index
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion