最新章節
- Summary
- R10K code deployment
- Synchronizing upstream modules
- The Puppet control repository
- Placing code on the Puppet server
- Building roles from profiles
品牌:中圖公司
上架時間:2021-07-02 18:09:24
出版社:Packt Publishing
本書數字版權由中圖公司提供,并由其授權上海閱文信息技術有限公司制作發行
- Summary 更新時間:2021-07-02 18:22:53
- R10K code deployment
- Synchronizing upstream modules
- The Puppet control repository
- Placing code on the Puppet server
- Building roles from profiles
- The business use case and node classification
- Implementing components in profiles
- Technical component modules
- Puppet Roles and Profiles
- Summary
- Hiera version 5
- Managing resources from data
- Debugging data lookups
- Choosing between manifest and Hiera designs
- Handling hashes and arrays
- Binding class parameter values automatically
- Working with simple values
- Fetching data from classes
- Choosing your backends
- Storing Hiera data
- Configuring Hiera
- Building hierarchical data structures
- Consequences of defining data in the manifest
- Understanding the need for separate data storage
- Separation of Code and Data with Hiera
- Summary
- Dealing with different data types
- Relative class name resolution
- No Ruby DSL anymore
- Cleaning hyphens in names
- Learning the new reference syntax
- Using strict variable naming
- Dealing with bool algebra on Strings
- Converting node inheritance
- Breaking old practices
- Using Puppet 5 server metrics
- Handling multiline with HEREDOC
- Leveraging the new template engine
- Creating Puppet 4 functions
- Learning lambdas and functions
- Using the type system
- Testing Puppet DSL code
- Updating the Puppet agent
- The Puppet 4 and 5 master
- Using Puppet 3.8 and environment directories
- Upgrading to Puppet 4
- New Features from Puppet 4 and 5
- Summary
- Avoiding antipatterns
- Saving redundancy using resource defaults
- Setting defaults for resource parameters
- Removing obsolete exports
- Maintaining your central firewall
- Simplifying the configuration of Nagios
- Automating custom configuration items
- Managing hosts files locally
- Exporting SSH host keys
- Configuring the master to store exported resources
- Exporting and collecting resources
- Cross-node configuration with exported resources
- Realizing resources more flexibly using collectors
- Using virtual resources
- Building from multiple snippets
- Single entry in a section
- Managing file snippets
- Avoiding performance bottlenecks from templates
- Using templates in practice
- Learning the template syntax
- Building dynamic configuration files
- The Puppet Beginners Advanced Parts
- Summary
- Identifying module characteristics
- Finding helpful Forge modules
- Making your module portable across platforms
- Refining the interface of your module through custom functions
- Enhancing Puppet's system knowledge through facts
- Making the type robust during provisioning
- Allowing the provider to prefetch existing resources
- Implementing the basic functionality
- Declaring management commands
- Adding a provider
- Using resource names
- Designing sensible parameter hooks
- Creating the resource type's interface
- Naming your type
- Replacing a defined type with a native type
- Enhancing the agent through plugins
- Dealing with complexity
- Removing unwanted configuration items
- Allowing customization
- Adding configuration items
- Creating utilities for derived manifests
- Implementing basic module functionality
- Making your module available to Puppet
- Naming your module
- Building a component module
- Safe testing with environments
- Testing your modules
- Avoiding generalization
- Putting everything in modules
- Module best practices
- Obtaining and installing modules
- Configuring environment locations
- Managing environments
- Documentation in modules
- Module structure
- Parts of a module
- The contents of Puppet's modules
- Combining Classes Configuration Files and Extensions into Modules
- Summary
- Preferring the include keyword
- The caveats of parameterized classes
- Making classes more flexible through parameters
- The contain function
- The anchor pattern
- Mitigating the limitations
- The performance implications of container relationships
- Limitations
- Ordering containers
- Passing events between classes and defined types
- Ordering and events among classes
- Including classes from defined types
- Using iterator functions
- Exploiting array values using defined types
- Using defined types as macros
- Using defined types as resource multiplexers
- Using defined types as resource wrappers
- Writing component classes
- Writing comprehensive classes
- Design patterns
- Understanding and leveraging the differences
- Creating and using defined types
- Defining and declaring classes
- Introducing classes and defined types
- Combining Resources in Classes and Defined Types
- Summary
- Putting it all together
- Summarizing types and providers
- Resource types with generic providers
- Command execution control with providers
- The resource type's life cycle on the agent side
- Understanding the type system
- Goals of Facter
- Simplifying things using external facts
- Extending Facter with custom facts
- Accessing and using fact values
- Putting it all together - collecting system information with Facter
- A Peek into the Ruby Part of Puppet - Facts Types and Providers
- Summary
- The Puppet CA
- Completing the stack with PuppetDB
- Tuning puppetserver
- Performance optimizations
- Running the agent from cron
- Renewing an agent's certificate
- The agent's life cycle
- Setting up the Puppet agent
- Inspecting the configuration settings
- Creating the master manifest
- Setting up the server machine
- The Puppet server
- Puppet Server and Agents
- Summary
- The mount resource type
- The cron resource type
- The exec resource type
- The user and group types
- Examining Puppet core resource types
- Implementing resource interaction
- Avoiding circular dependencies
- Error propagation
- Declaring dependencies
- Controlling the order of execution
- Adding control structures in manifests
- Data types
- Variable types
- Using variables
- Dry testing your manifest
- Interpreting output of the puppet apply command
- Introducing resources parameters and properties
- Getting started
- Writing Your First Manifests
- Questions
- Piracy
- Errata
- Downloading the color images of this book
- Downloading the example code
- Customer support
- Reader feedback
- Conventions
- Who this book is for
- What you need for this book
- What this book covers
- Preface
- Customer Feedback
- Why subscribe?
- www.PacktPub.com
- About the Reviewer
- About the Authors
- Credits
- Third Edition
- Puppet 5 Essentials
- Copyright
- Third Edition
- Puppet 5 Essentials
- Title Page
- cover
- cover
- Title Page
- Puppet 5 Essentials
- Third Edition
- Copyright
- Puppet 5 Essentials
- Third Edition
- Credits
- About the Authors
- About the Reviewer
- www.PacktPub.com
- Why subscribe?
- Customer Feedback
- 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
- Downloading the color images of this book
- Errata
- Piracy
- Questions
- Writing Your First Manifests
- Getting started
- Introducing resources parameters and properties
- Interpreting output of the puppet apply command
- Dry testing your manifest
- Using variables
- Variable types
- Data types
- Adding control structures in manifests
- Controlling the order of execution
- Declaring dependencies
- Error propagation
- Avoiding circular dependencies
- Implementing resource interaction
- Examining Puppet core resource types
- The user and group types
- The exec resource type
- The cron resource type
- The mount resource type
- Summary
- Puppet Server and Agents
- The Puppet server
- Setting up the server machine
- Creating the master manifest
- Inspecting the configuration settings
- Setting up the Puppet agent
- The agent's life cycle
- Renewing an agent's certificate
- Running the agent from cron
- Performance optimizations
- Tuning puppetserver
- Completing the stack with PuppetDB
- The Puppet CA
- Summary
- A Peek into the Ruby Part of Puppet - Facts Types and Providers
- Putting it all together - collecting system information with Facter
- Accessing and using fact values
- Extending Facter with custom facts
- Simplifying things using external facts
- Goals of Facter
- Understanding the type system
- The resource type's life cycle on the agent side
- Command execution control with providers
- Resource types with generic providers
- Summarizing types and providers
- Putting it all together
- Summary
- Combining Resources in Classes and Defined Types
- Introducing classes and defined types
- Defining and declaring classes
- Creating and using defined types
- Understanding and leveraging the differences
- Design patterns
- Writing comprehensive classes
- Writing component classes
- Using defined types as resource wrappers
- Using defined types as resource multiplexers
- Using defined types as macros
- Exploiting array values using defined types
- Using iterator functions
- Including classes from defined types
- Ordering and events among classes
- Passing events between classes and defined types
- Ordering containers
- Limitations
- The performance implications of container relationships
- Mitigating the limitations
- The anchor pattern
- The contain function
- Making classes more flexible through parameters
- The caveats of parameterized classes
- Preferring the include keyword
- Summary
- Combining Classes Configuration Files and Extensions into Modules
- The contents of Puppet's modules
- Parts of a module
- Module structure
- Documentation in modules
- Managing environments
- Configuring environment locations
- Obtaining and installing modules
- Module best practices
- Putting everything in modules
- Avoiding generalization
- Testing your modules
- Safe testing with environments
- Building a component module
- Naming your module
- Making your module available to Puppet
- Implementing basic module functionality
- Creating utilities for derived manifests
- Adding configuration items
- Allowing customization
- Removing unwanted configuration items
- Dealing with complexity
- Enhancing the agent through plugins
- Replacing a defined type with a native type
- Naming your type
- Creating the resource type's interface
- Designing sensible parameter hooks
- Using resource names
- Adding a provider
- Declaring management commands
- Implementing the basic functionality
- Allowing the provider to prefetch existing resources
- Making the type robust during provisioning
- Enhancing Puppet's system knowledge through facts
- Refining the interface of your module through custom functions
- Making your module portable across platforms
- Finding helpful Forge modules
- Identifying module characteristics
- Summary
- The Puppet Beginners Advanced Parts
- Building dynamic configuration files
- Learning the template syntax
- Using templates in practice
- Avoiding performance bottlenecks from templates
- Managing file snippets
- Single entry in a section
- Building from multiple snippets
- Using virtual resources
- Realizing resources more flexibly using collectors
- Cross-node configuration with exported resources
- Exporting and collecting resources
- Configuring the master to store exported resources
- Exporting SSH host keys
- Managing hosts files locally
- Automating custom configuration items
- Simplifying the configuration of Nagios
- Maintaining your central firewall
- Removing obsolete exports
- Setting defaults for resource parameters
- Saving redundancy using resource defaults
- Avoiding antipatterns
- Summary
- New Features from Puppet 4 and 5
- Upgrading to Puppet 4
- Using Puppet 3.8 and environment directories
- The Puppet 4 and 5 master
- Updating the Puppet agent
- Testing Puppet DSL code
- Using the type system
- Learning lambdas and functions
- Creating Puppet 4 functions
- Leveraging the new template engine
- Handling multiline with HEREDOC
- Using Puppet 5 server metrics
- Breaking old practices
- Converting node inheritance
- Dealing with bool algebra on Strings
- Using strict variable naming
- Learning the new reference syntax
- Cleaning hyphens in names
- No Ruby DSL anymore
- Relative class name resolution
- Dealing with different data types
- Summary
- Separation of Code and Data with Hiera
- Understanding the need for separate data storage
- Consequences of defining data in the manifest
- Building hierarchical data structures
- Configuring Hiera
- Storing Hiera data
- Choosing your backends
- Fetching data from classes
- Working with simple values
- Binding class parameter values automatically
- Handling hashes and arrays
- Choosing between manifest and Hiera designs
- Debugging data lookups
- Managing resources from data
- Hiera version 5
- Summary
- Puppet Roles and Profiles
- Technical component modules
- Implementing components in profiles
- The business use case and node classification
- Building roles from profiles
- Placing code on the Puppet server
- The Puppet control repository
- Synchronizing upstream modules
- R10K code deployment
- Summary 更新時間:2021-07-02 18:22:53