万本电子书0元读

万本电子书0元读

顶部广告

Extending Puppet电子书

售       价:¥

0人正在读 | 0人评论 9.8

作       者:Alessandro Franceschi

出  版  社:Packt Publishing

出版时间:2014-06-24

字       数:373.8万

所属分类: 进口书 > 外文原版书 > 电脑/网络

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
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.
目录展开

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

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部