售 价:¥
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
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
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜