
Extending Puppet.
Title:
Extending Puppet.
Author:
Franceschi, Alessandro.
ISBN:
9781783981458
Personal Author:
Physical Description:
1 online resource (367 pages)
Contents:
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.
Abstract:
This book is a clear, detailed and practical guide to learn about designing and deploying you puppet architecture, with informative examples to highlight and explain concepts in a focused manner. This book is designed for users who already have good experience with Puppet, and will surprise experienced users with innovative topics that explore how to design, implement, adapt, and deploy a Puppet architecture. The key to extending Puppet is the development of types and providers, for which you must be familiar with Ruby.
Local Note:
Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2017. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.
Genre:
Electronic Access:
Click to View