舉報(bào)

會(huì)員
Mastering Puppet 5
Ryan Russell Yates Jason Southgate 著
更新時(shí)間:2021-07-16 17:46:58
開會(huì)員,本書免費(fèi)讀 >
Puppetisaconfigurationmanagementsystemandalanguagewrittenforandbysystemadministratorstomanagealargenumberofsystemsefficientlyandpreventconfigurationdrift.ThecoretopicsthisbookaddressesarePuppet'slatestfeaturesandmasteringPuppetEnterprise.YouwillbeginbywritinganewPuppetmodule,gaininganunderstandingoftheguidelinesandstyleofthePuppetcommunity.Followingonfromthis,youwilltakeadvantageoftherolesandprofilespattern,andyouwilllearnhowtostructureyourcode.Next,youwilllearnhowtoextendPuppetandwritecustomfacts,functions,types,andprovidersinRuby,andalsousethenewfeaturesofHiera5.YouwillalsolearnhowtoconfigurethenewCodeManagercomponent,andhowtoensurecodeisautomaticallydeployedto(multiple)Puppetservers.Next,youwilllearnhowtointegratePuppetwithJenkinsandGittobuildaneffectiveworkflowformultipleteams,andusethenewPuppetTasksfeatureandthelatestPuppetOrchestratorlanguageextensions.Finally,youwilllearnhowtoscaleandtroubleshootPuppet.Bytheendofthebook,youwillbeabletodealwithproblemsofscaleandexceptionsinyourcode,automateworkflows,andsupportmultipledevelopersworkingsimultaneously.
最新章節(jié)
- Leave a review - let other readers know what you think
- Other Books You May Enjoy
- Summary
- Puppet Enterprise console
- Puppetserver
- PuppetDB
品牌:中圖公司
上架時(shí)間:2021-07-16 17:30:15
出版社:Packt Publishing
本書數(shù)字版權(quán)由中圖公司提供,并由其授權(quán)上海閱文信息技術(shù)有限公司制作發(fā)行
- Leave a review - let other readers know what you think 更新時(shí)間:2021-07-16 17:46:58
- Other Books You May Enjoy
- Summary
- Puppet Enterprise console
- Puppetserver
- PuppetDB
- Puppet agent
- Root logger
- Loggers
- Appender
- Main configuration
- The logback.xml file
- Logging
- Debug mode – catalog
- Circular dependencies
- Autoload format
- Missing resources
- Duplicate resource declaration
- Syntax errors
- Catalog errors
- PE console service is down
- Date and time
- DNS alt name
- Network connectivity
- Wrong Puppet user
- Certificate reuse
- Waiting on certificate signing
- Puppet agents and Puppetserver
- Common component errors
- Troubleshooting and Profiling
- Summary
- PuppetDB
- Certificate authority
- Load balancing
- Simple setup – direct connection
- Load balancing
- Adding new compile masters
- Estimating the number of agents a Puppetserver supports
- Puppetserver
- Horizontal scaling
- PuppetDB – PostgreSQL with PGTune
- Puppet Enterprise
- Automatically determining settings
- Tuning CPU threads
- Managing the heap size
- Deactivating and purging nodes
- PuppetDB tuning
- Open source implementation
- Puppet Enterprise implementation
- Puppetserver tuning
- Tuning
- PuppetDB dashboard
- Puppetserver
- Inspection
- Scaling Puppet
- Summary
- Deploy
- Build
- Dependencies
- Adding a load balancer and providing horizontal scaling
- Deploy
- Application components
- DB service resource
- Application declaration
- Node declaration
- Build
- Dependencies
- Application and database
- Modeling applications
- Service resources
- Application components
- Application definition
- Application Orchestration
- Summary
- file_line – the scalpel
- Concat – the hammer
- Concat file lines and you!
- Database connections
- Load balancing
- Hosts file
- Use cases
- Exported resources
- Tags
- Virtual resources
- Virtual and exported resources
- Exported Resources
- Summary
- Uses for Discovery
- Managing services
- Installing agents
- Acting
- Discovering packages
- Discovering hosts
- Viewing the Discovery
- Discovering
- SSH key file
- Managing credentials
- Adding sources by IP address
- Managing sources
- Preparing Puppet Discovery
- Installing Discovery
- Puppet Discovery
- Puppet Enterprise Task Management
- Bolt plans
- Task
- task.json
- Bolt tasks
- Ad hoc commands
- Managing nodes
- Installing Bolt
- Bolt
- Puppet Tasks
- Extending Puppet with Tasks and Discovery
- Summary
- Performing the test
- Test
- acceptance.sh
- Jenkinsfile
- Puppetfile
- .kitchen.yml
- Jenkins Profile
- Preparing Test Kitchen on our Jenkins node
- Test Kitchen and kitchen-puppet
- Beaker
- Acceptance testing with Test Kitchen
- Extending our test
- Extending our Jenkinsfile
- jenkins_spec.rb
- .fixtures.yml
- Relevant RSpec files
- Unit testing with Puppet RSpec
- Integrating the PDK
- Connecting Jenkins to our repository
- Building our Jenkinsfile
- Building our profile module
- Creating our first build
- Managing our plugins
- rtyler/jenkins
- Managing Jenkins with Puppet
- Jenkins
- Puppet Pipelines
- Continuous Integration systems
- Continuous Integration
- Summary
- The pdk test unit command
- The pdk validate command
- The pdk new command
- Creating new Puppet artifacts
- PDK
- Using the PDK
- Git tags and versioning
- Merging branches
- Testing the changes
- Deploying the new environment on the Puppet Master
- Editing the control repository
- Cloning the control repository
- Clone and edit the component repositories
- Tasks
- Module repository
- Control repository
- Repositories
- Components of the Puppet workflow
- Designing a Puppet workflow
- Quality control
- Ease of onboarding
- Rapid feedback
- Ease of use
- Puppet workflow
- Workflow
- Summary
- Multitenant control repository
- PE client tools
- Code Manager RBAC
- Enabling Code Manager
- Code Manager
- Installing and using r10k
- Control repository example
- Roles and profiles
- environment.conf
- site.pp
- hiera.yaml
- Puppetfile
- non-production-like environments
- production-like environments
- Control repository
- r10k
- Git
- Code Manager
- Efficiently managing code
- Managing Code
- Summary
- Encryption-enabling our Jerakia lookups
- Configuring Jerakia for encryption
- Allowing Jerakia to authenticate with our Vault
- Checking the encryption is working correctly
- Creating a policy for encrypting and decrypting
- Creating an encryption key
- Enabling the transit backend
- Unsealing Vault
- Installing and configuring Vault
- Using Vault as an encryption backend
- Creating your default Jerakia policy
- Configuring Jerakia
- Installing Jerakia
- Jerakia advanced use cases
- Beyond Hiera using Jerakia
- Equivalent debugging technique
- Old debugging techniques
- Debugging Hiera
- unpack_arrays setting
- merge_hash_arrays setting
- sort_merge_arrays setting
- knockout_prefix setting
- Deep merge lookup settings explained
- Lookup strategies
- Lookup function examples
- Lookup function arguments
- The lookup function syntax
- Lookup function
- Changing hiera.yaml
- Securely storing away the encryption keys
- Creating the encryption keys
- Installing hiera-eyaml
- Encrypted YAML backend
- Global environment and module layers
- Hiera 5 summary
- A more complete hierarchy
- Introducing a frame for the environment
- Separation of concerns between code and data
- Hiera 5
- Summary
- Implementing the self.instances method
- Using the GET and SET methods to manage type properties
- Using the create and destroy methods
- Using the exists? method
- Implementing the ensure property
- Using the commands method
- Using the defaultfor method
- Using the confine method
- Indicating the suitability of the provider to the type
- Creating and distributing the provider
- Providers
- Using the desc method to add inline documentation
- Using arrays to assign a list of values to an attribute
- Using autorequire for implicit relationships
- Checking datatype compatibility with munge
- Checking the input value against a newvalues array
- Checking the input value with a validate block
- Setting property and parameter defaults
- Adding type parameters
- Adding the optional ensure property
- Adding additional type properties
- Adding the namevar special attribute
- Creating and distributing the type
- Types
- Types and providers
- Custom functions
- Debugging facts
- Custom facts
- Extending Puppet
- Summary
- Deciding on the granularity of roles for your nodes
- Naming roles in your business's conversational name
- Constructing roles only with the include keyword
- Roles best practices summary
- Roles
- Deciding to use either automatic class parameter lookup or the lookup function
- Deciding how to set the parameters for component classes
- Hiding complexity with parameters defaults and abstraction
- Using subdirectories for sensible readable profile class groups
- Designing for use of the include keyword
- Profiles best practices summary
- Profiles
- Summary of the pattern
- Roles and Profiles
- Summary
- Using the new Hiera 5 module level data
- Puppet and PE version support
- Operating systems support
- Adding compatibility data for your modules
- Adding module dependencies
- MacDown
- Remarkable
- Standalone Markdown editors
- Visual Studio
- Atom
- TextMate
- Vim
- Grabbing yourself a Markdown editor
- Writing great documentation
- Working with the community
- Using Puppet Forge
- Working with dead code
- Staying on the lookout for code smells
- Unit testing your module
- Validating your module
- Using the new Puppet Development Kit commands
- Strongly typing your module variables
- Providing sensible well-thought-out parameter defaults
- Using the encapsulation principle
- Using high cohesion and loose coupling principles
- Having a single point of entry to the module
- Following the class-naming conventions
- Using good module and class structure
- Visual Studio
- Atom
- TextMate
- Vim
- Using a decent IDE and plugins
- Authoring Modules
- Reviews
- Get in touch
- Conventions used
- Download the color images
- Download the example code files
- To get the most out of this book
- What this book covers
- Who this book is for
- Preface
- Packt is searching for authors like you
- About the reviewer
- About the authors
- Contributors
- packt.com
- Why subscribe?
- Packt Upsell
- Dedication
- Mastering Puppet 5
- Copyright and Credits
- Title Page
- 封面
- 封面
- Title Page
- Copyright and Credits
- Mastering Puppet 5
- Dedication
- Packt Upsell
- Why subscribe?
- packt.com
- Contributors
- About the authors
- About the reviewer
- Packt is searching for authors like you
- Preface
- Who this book is for
- What this book covers
- To get the most out of this book
- Download the example code files
- Download the color images
- Conventions used
- Get in touch
- Reviews
- Authoring Modules
- Using a decent IDE and plugins
- Vim
- TextMate
- Atom
- Visual Studio
- Using good module and class structure
- Following the class-naming conventions
- Having a single point of entry to the module
- Using high cohesion and loose coupling principles
- Using the encapsulation principle
- Providing sensible well-thought-out parameter defaults
- Strongly typing your module variables
- Using the new Puppet Development Kit commands
- Validating your module
- Unit testing your module
- Staying on the lookout for code smells
- Working with dead code
- Using Puppet Forge
- Working with the community
- Writing great documentation
- Grabbing yourself a Markdown editor
- Vim
- TextMate
- Atom
- Visual Studio
- Standalone Markdown editors
- Remarkable
- MacDown
- Adding module dependencies
- Adding compatibility data for your modules
- Operating systems support
- Puppet and PE version support
- Using the new Hiera 5 module level data
- Summary
- Roles and Profiles
- Summary of the pattern
- Profiles
- Profiles best practices summary
- Designing for use of the include keyword
- Using subdirectories for sensible readable profile class groups
- Hiding complexity with parameters defaults and abstraction
- Deciding how to set the parameters for component classes
- Deciding to use either automatic class parameter lookup or the lookup function
- Roles
- Roles best practices summary
- Constructing roles only with the include keyword
- Naming roles in your business's conversational name
- Deciding on the granularity of roles for your nodes
- Summary
- Extending Puppet
- Custom facts
- Debugging facts
- Custom functions
- Types and providers
- Types
- Creating and distributing the type
- Adding the namevar special attribute
- Adding additional type properties
- Adding the optional ensure property
- Adding type parameters
- Setting property and parameter defaults
- Checking the input value with a validate block
- Checking the input value against a newvalues array
- Checking datatype compatibility with munge
- Using autorequire for implicit relationships
- Using arrays to assign a list of values to an attribute
- Using the desc method to add inline documentation
- Providers
- Creating and distributing the provider
- Indicating the suitability of the provider to the type
- Using the confine method
- Using the defaultfor method
- Using the commands method
- Implementing the ensure property
- Using the exists? method
- Using the create and destroy methods
- Using the GET and SET methods to manage type properties
- Implementing the self.instances method
- Summary
- Hiera 5
- Separation of concerns between code and data
- Introducing a frame for the environment
- A more complete hierarchy
- Hiera 5 summary
- Global environment and module layers
- Encrypted YAML backend
- Installing hiera-eyaml
- Creating the encryption keys
- Securely storing away the encryption keys
- Changing hiera.yaml
- Lookup function
- The lookup function syntax
- Lookup function arguments
- Lookup function examples
- Lookup strategies
- Deep merge lookup settings explained
- knockout_prefix setting
- sort_merge_arrays setting
- merge_hash_arrays setting
- unpack_arrays setting
- Debugging Hiera
- Old debugging techniques
- Equivalent debugging technique
- Beyond Hiera using Jerakia
- Jerakia advanced use cases
- Installing Jerakia
- Configuring Jerakia
- Creating your default Jerakia policy
- Using Vault as an encryption backend
- Installing and configuring Vault
- Unsealing Vault
- Enabling the transit backend
- Creating an encryption key
- Creating a policy for encrypting and decrypting
- Checking the encryption is working correctly
- Allowing Jerakia to authenticate with our Vault
- Configuring Jerakia for encryption
- Encryption-enabling our Jerakia lookups
- Summary
- Managing Code
- Efficiently managing code
- Code Manager
- Git
- r10k
- Control repository
- production-like environments
- non-production-like environments
- Puppetfile
- hiera.yaml
- site.pp
- environment.conf
- Roles and profiles
- Control repository example
- Installing and using r10k
- Code Manager
- Enabling Code Manager
- Code Manager RBAC
- PE client tools
- Multitenant control repository
- Summary
- Workflow
- Puppet workflow
- Ease of use
- Rapid feedback
- Ease of onboarding
- Quality control
- Designing a Puppet workflow
- Components of the Puppet workflow
- Repositories
- Control repository
- Module repository
- Tasks
- Clone and edit the component repositories
- Cloning the control repository
- Editing the control repository
- Deploying the new environment on the Puppet Master
- Testing the changes
- Merging branches
- Git tags and versioning
- Using the PDK
- PDK
- Creating new Puppet artifacts
- The pdk new command
- The pdk validate command
- The pdk test unit command
- Summary
- Continuous Integration
- Continuous Integration systems
- Puppet Pipelines
- Jenkins
- Managing Jenkins with Puppet
- rtyler/jenkins
- Managing our plugins
- Creating our first build
- Building our profile module
- Building our Jenkinsfile
- Connecting Jenkins to our repository
- Integrating the PDK
- Unit testing with Puppet RSpec
- Relevant RSpec files
- .fixtures.yml
- jenkins_spec.rb
- Extending our Jenkinsfile
- Extending our test
- Acceptance testing with Test Kitchen
- Beaker
- Test Kitchen and kitchen-puppet
- Preparing Test Kitchen on our Jenkins node
- Jenkins Profile
- .kitchen.yml
- Puppetfile
- Jenkinsfile
- acceptance.sh
- Test
- Performing the test
- Summary
- Extending Puppet with Tasks and Discovery
- Puppet Tasks
- Bolt
- Installing Bolt
- Managing nodes
- Ad hoc commands
- Bolt tasks
- task.json
- Task
- Bolt plans
- Puppet Enterprise Task Management
- Puppet Discovery
- Installing Discovery
- Preparing Puppet Discovery
- Managing sources
- Adding sources by IP address
- Managing credentials
- SSH key file
- Discovering
- Viewing the Discovery
- Discovering hosts
- Discovering packages
- Acting
- Installing agents
- Managing services
- Uses for Discovery
- Summary
- Exported Resources
- Virtual and exported resources
- Virtual resources
- Tags
- Exported resources
- Use cases
- Hosts file
- Load balancing
- Database connections
- Concat file lines and you!
- Concat – the hammer
- file_line – the scalpel
- Summary
- Application Orchestration
- Application definition
- Application components
- Service resources
- Modeling applications
- Application and database
- Dependencies
- Build
- Node declaration
- Application declaration
- DB service resource
- Application components
- Deploy
- Adding a load balancer and providing horizontal scaling
- Dependencies
- Build
- Deploy
- Summary
- Scaling Puppet
- Inspection
- Puppetserver
- PuppetDB dashboard
- Tuning
- Puppetserver tuning
- Puppet Enterprise implementation
- Open source implementation
- PuppetDB tuning
- Deactivating and purging nodes
- Managing the heap size
- Tuning CPU threads
- Automatically determining settings
- Puppet Enterprise
- PuppetDB – PostgreSQL with PGTune
- Horizontal scaling
- Puppetserver
- Estimating the number of agents a Puppetserver supports
- Adding new compile masters
- Load balancing
- Simple setup – direct connection
- Load balancing
- Certificate authority
- PuppetDB
- Summary
- Troubleshooting and Profiling
- Common component errors
- Puppet agents and Puppetserver
- Waiting on certificate signing
- Certificate reuse
- Wrong Puppet user
- Network connectivity
- DNS alt name
- Date and time
- PE console service is down
- Catalog errors
- Syntax errors
- Duplicate resource declaration
- Missing resources
- Autoload format
- Circular dependencies
- Debug mode – catalog
- Logging
- The logback.xml file
- Main configuration
- Appender
- Loggers
- Root logger
- Puppet agent
- PuppetDB
- Puppetserver
- Puppet Enterprise console
- Summary
- Other Books You May Enjoy
- Leave a review - let other readers know what you think 更新時(shí)間:2021-07-16 17:46:58