Index
A
- acceptance.sh / acceptance.sh
- acceptance testing
- with Test Kitchen / Acceptance testing with Test Kitchen
- application components
- about / Application components
- application definition
- about / Application definition
- applications, modeling
- about / Modeling applications
- database / Application and database
- dependencies / Dependencies
- code, writing / Build
- node declaration / Node declaration
- application declaration / Application declaration
- DB service resource / DB service resource
- application components / Application components
- deployment, stimulating / Deploy
- load balancer, adding / Adding a load balancer and providing horizontal scaling
- horizontal scaling, providing / Adding a load balancer and providing horizontal scaling
- dependencies, installing / Dependencies
- build / Build
- application, deploying / Deploy
- AppRole authentication / Allowing Jerakia to authenticate with our Vault
- Atom
- reference / Using a decent IDE and plugins, Atom
- about / Atom
B
- Beaker / Beaker
- Bolt
- about / Bolt
- reference / Installing Bolt
- installing / Installing Bolt
- nodes, managing / Managing nodes
- ad hoc commands / Ad hoc commands
- tasks / Bolt tasks
- plans / Bolt plans
C
- catalog errors
- about / Catalog errors
- syntax errors / Syntax errors
- duplicate resource, declaration / Duplicate resource declaration
- resources, missing / Missing resources
- circular dependencies / Circular dependencies
- debug mode / Debug mode – catalog
- circular dependencies / Circular dependencies
- class naming conventions
- following / Following the class-naming conventions
- class structure
- Code Deployer
- about / Code Manager RBAC
- PE client tools / PE client tools
- code management
- about / Efficiently managing code
- Code Manager
- about / Code Manager, Code Manager
- Git, using / Git
- r10k, using / r10k
- feature / Code Manager
- enabling / Enabling Code Manager
- with RBAC / Code Manager RBAC
- code smells / Staying on the lookout for code smells
- commands method
- suitability of provider, indicating to type / Using the commands method
- community
- working with / Working with the community
- compatibility data, adding for modules
- operating systems support / Operating systems support
- Puppet support / Puppet and PE version support
- PE version support / Puppet and PE version support
- component errors
- about / Common component errors
- with Puppet agents / Puppet agents and Puppetserver
- with puppetserver / Puppet agents and Puppetserver
- component modules / Summary of the pattern
- components, Puppet workflow
- about / Components of the Puppet workflow
- repositories / Repositories
- tasks / Tasks
- confine method
- suitability of provider, indicating to type / Using the confine method
- Continuous Integration systems
- about / Continuous Integration systems
- Puppet Pipelines / Puppet Pipelines
- Jenkins / Jenkins
- plugins, managing / Managing our plugins
- build, creating / Creating our first build
- PDK, integrating / Integrating the PDK
- control repository / r10k
- about / Control repository, Control repository
- production-like environments / production-like environments
- non-production-like environments / non-production-like environments
- Puppetfile / Puppetfile
- hiera.yaml / hiera.yaml
- site.pp / site.pp
- environment.conf / environment.conf
- profiles / Roles and profiles
- roles / Roles and profiles
- example / Control repository example
- copy-paste-detector (CPD) / Staying on the lookout for code smells
- create method
- used, for implementing ensure property / Using the create and destroy methods
- custom facts
- about / Custom facts
- custom functions
- about / Custom functions
D
- dead code
- working with / Working with dead code
- defaultfor method
- suitability of provider, indicating to type / Using the defaultfor method
- destroy method
- used, for implementing ensure property / Using the create and destroy methods
- documentation
- writing / Writing great documentation
E
- encrypted YAML backend / Encrypted YAML backend
- encryption backend
- Vault, using as / Using Vault as an encryption backend
- encryption key
- creating / Creating an encryption key
- encryption keys
- creating / Creating the encryption keys
- storing, securely / Securely storing away the encryption keys
- ensure property
- implementing / Implementing the ensure property
- environment frame / Introducing a frame for the environment
- environment layer / Global, environment, and module layers
- exists? method
- used, for implementing ensure property / Using the exists? method
- exported resources
- about / Virtual and exported resources, Exported resources
- use cases / Use cases
- external node classifier (ENC) / site.pp
F
- facts
- debugging / Debugging facts
- Free and Open Source Software (FOSS) / Installing Discovery
G
- Garbage Collection (GC) / Puppetserver
- GET method
- used, for managing type properties / Using the GET and SET methods to manage type properties
- global layer / Global, environment, and module layers
H
- Hiera
- debugging / Debugging Hiera
- old debugging techniques / Old debugging techniques
- equivalent debugging technique / Equivalent debugging technique
- hiera-eyaml
- installing / Installing hiera-eyaml
- hiera.yaml
- modifying / Changing hiera.yaml
- Hiera 5
- overview / Hiera 5 summary
- global layer / Global, environment, and module layers
- environment layer / Global, environment, and module layers
- module layer / Global, environment, and module layers
- Hiera 5 module level data
- hierarchy
- building / A more complete hierarchy
- example / A more complete hierarchy
- horizontal scaling
- about / Horizontal scaling
- of Puppetserver / Puppetserver
- of PuppetDB / PuppetDB
I
- inspection
- of Puppetserver / Inspection, Puppetserver
- of PuppetDB / Inspection, PuppetDB dashboard
- Integrated Development Machine (IDE)
- using / Using a decent IDE and plugins
- Vim / Vim
- TextMate / TextMate
- Atom / Atom
- Visual Studio / Visual Studio
J
- Java Virtual Machine (JVM) / Puppetserver
- Jenkins
- about / Jenkins
- managing, with Puppet / Managing Jenkins with Puppet
- connecting, to repository / Connecting Jenkins to our repository
- Jenkinsfile
- building / Building our Jenkinsfile
- extending / Extending our Jenkinsfile
- Jenkins node
- Test Kitchen, preparing on / Preparing Test Kitchen on our Jenkins node
- Jenkins Profile / Jenkins Profile
- Jerakia
- advanced use cases / Jerakia advanced use cases
- installing / Installing Jerakia
- configuring / Configuring Jerakia
- policy, creating for encryption / Creating a policy for encrypting and decrypting
- policy, creating for decryption / Creating a policy for encrypting and decrypting
- allowing, to authenticate / Allowing Jerakia to authenticate with our Vault
- configuring, for encryption / Configuring Jerakia for encryption
- Jerakia lookups
- enabling / Encryption-enabling our Jerakia lookups
- Jerakia policy
- creating / Creating your default Jerakia policy
K
- .kitchen.yml / .kitchen.yml
- kitchen-puppet
- reference / Test Kitchen and kitchen-puppet
L
- LAMP stack
- with functional Puppet domain specific language (DSL) code / Profiles
- logback.xml file
- about / The logback.xml file
- main configuration / Main configuration
- appender, configuration / Appender
- loggers / Loggers
- root logger / Root logger
- logging
- about / Logging
- logback.xml file / The logback.xml file
- for Puppet agent / Puppet agent
- for PuppetDB / PuppetDB
- for Puppetserver / Puppetserver
- for Puppet Enterprise console / Puppet Enterprise console
- lookup function
- about / Lookup function
- syntax / The lookup function syntax
- arguments / Lookup function arguments
- examples / Lookup function examples
- lookup strategies / Lookup strategies
M
- MacDown / MacDown
- markdown editor
- obtaining / Grabbing yourself a Markdown editor
- vim / Vim
- TextMate / TextMate
- Atom / Atom
- Visual Studio / Visual Studio
- standalone markdown editor / Standalone Markdown editors
- Markdown Preview Plus package
- reference / Atom
- Master of Masters (MoM) / Code Manager
- merge lookup settings
- knockout_prefix setting / Deep merge lookup settings explained, knockout_prefix setting
- sort_merge_arrays setting / sort_merge_arrays setting
- merge_hash_arrays setting / merge_hash_arrays setting
- unpack_arrays setting / unpack_arrays setting
- Message Queue (MQ) / Tuning CPU threads
- module
- using / Using good module and class structure
- single point of entry / Having a single point of entry to the module
- high cohesion, using / Using high cohesion and loose coupling principles
- loose coupling principles / Using high cohesion and loose coupling principles
- encapsulation principle, using / Using the encapsulation principle
- validating / Validating your module
- unit testing / Unit testing your module
- module dependencies
- adding / Adding module dependencies
- module development process
- with PDK 1.0 / Using the new Puppet Development Kit commands
- module layer / Global, environment, and module layers
- module repository
- about / Module repository
- module variables
- strongly typing / Strongly typing your module variables
- monolithic masters
- reference / Tuning
- multi-tenant control repository
- setting up / Multitenant control repository
N
- new module command
- reference / Working with the community
P
- Pathogen
- reference / Vim
- pdk-templates
- reference / The pdk new command
- PDK 1.0
- module development process / Using the new Puppet Development Kit commands
- pdk validate command
- reference / Validating your module
- PE client tools / PE client tools
- plugins
- using / Using a decent IDE and plugins
- profile module
- building / Building our profile module
- profiles
- providers
- about / Providers
- reference / Providers
- creating / Creating and distributing the provider
- distributing / Creating and distributing the provider
- suitability, indicating to type / Indicating the suitability of the provider to the type
- Puppet
- workflow / Puppet workflow
- Jenkins, managing with / Managing Jenkins with Puppet
- Puppet-lint
- about / The pdk validate command
- reference / The pdk validate command
- Puppet agent
- logging / Puppet agent
- Puppet agents
- component errors / Puppet agents and Puppetserver
- Puppet agents, errors
- wait on certificate signing / Waiting on certificate signing
- certificate reuse / Certificate reuse
- wrong Puppet user / Wrong Puppet user
- network connectivity / Network connectivity
- DNS alt name / DNS alt name
- with date and time / Date and time
- PE console service, overloading / PE console service is down
- Puppet artifacts
- creating / Creating new Puppet artifacts
- creating, with pdk new command / The pdk new command
- PuppetDB
- dashboard, inspecting / PuppetDB dashboard
- tuning / PuppetDB tuning
- nodes, deactivating / Deactivating and purging nodes
- nodes, purging / Deactivating and purging nodes
- heap size, managing / Managing the heap size
- CPU threads, tuning / Tuning CPU threads
- PostgreSQL server, tuning with PGTune / PuppetDB – PostgreSQL with PGTune
- horizontal scaling / PuppetDB
- logging / PuppetDB
- Puppet Development Kit (PDK) / Visual Studio
- using / Using the PDK
- about / PDK
- Puppet artifacts, creating / Creating new Puppet artifacts
- pdk validate command / The pdk validate command
- pdk test unit command / The pdk test unit command
- Puppet Development Kit commands
- Puppet Discovery
- about / Puppet Discovery
- installing / Installing Discovery
- preparing / Preparing Puppet Discovery
- sources, managing / Managing sources
- sources, adding by IP address / Adding sources by IP address
- credentials, managing / Managing credentials
- SSH key file / SSH key file
- discovering / Discovering
- viewing / Viewing the Discovery
- hosts, discovering / Discovering hosts
- packages, discovering / Discovering packages
- actions / Acting
- agents, installing / Installing agents
- services, managing / Managing services
- uses / Uses for Discovery
- Puppet DSL
- reference / Custom functions
- Puppet Enterprise
- automatically tuning / Automatically determining settings, Puppet Enterprise
- logging / Puppet Enterprise console
- Puppet Enterprise Task Management
- Puppetfile / Puppetfile
- Puppet Forge
- using / Using Puppet Forge
- reference / Using Puppet Forge
- puppetlabs-concat
- reference / Concat – the hammer
- puppetlabs-inifile
- reference / file_line – the scalpel
- puppetlabs-stdlib
- reference / Concat, file lines, and you!, file_line – the scalpel
- Puppet lookup command
- Puppet module
- reference / Installing and using r10k
- Puppet Pipelines / Puppet Pipelines
- Puppet RSpec
- reference / Unit testing your module
- Puppetserver
- inspecting / Puppetserver
- metrics / Puppetserver
- tuning / Puppetserver tuning
- Puppet Enterprise, implementation / Puppet Enterprise implementation
- open source implementation / Open source implementation
- horizontal scaling / Puppetserver
- agents, estimating / Estimating the number of agents a Puppetserver supports
- compile masters, adding / Adding new compile masters
- load balancing / Load balancing, Load balancing
- direct connection, to data centers / Simple setup – direct connection
- certificate authority / Certificate authority
- logging / Puppetserver
- puppetserver
- component errors / Puppet agents and Puppetserver
- Puppet Tasks
- about / Puppet Tasks
- Bolt / Bolt
R
- r10k
- about / r10k
- using / r10k, Installing and using r10k
- control repository / Control repository
- installing / Installing and using r10k
- Remarkable / Remarkable
- repositories, Puppet workflow
- about / Repositories
- control repository / Control repository
- module repositories / Module repository
- resources
- missing / Missing resources
- autoload format / Autoload format
- resource types
- reference / Types and providers
- roles
- about / Summary of the pattern, Roles
- best practices / Roles best practices summary, Naming roles in your business's conversational name
- roles and profiles pattern / Summary of the pattern
- RSpec files
- about / Relevant RSpec files
- .fixtures.yml / .fixtures.yml
- jenkins_spec.rb / jenkins_spec.rb
- RSpec test
- extending / Extending our test
- RSpec tests
- reference / Extending our test
- rtyler/jenkins / rtyler/jenkins
- Ruby functions API
- reference / Custom functions
S
- self.instances method
- implementing / Implementing the self.instances method
- semver
- reference / Puppet and PE version support
- separation of concerns
- between code and data / Separation of concerns between code and data
- service resources
- about / Service resources
- SET method
- used, for managing type properties / Using the GET and SET methods to manage type properties
- Snipmate.vim
- reference / Vim
- specifics, on Hiera 5 configuration syntax
- reference / Introducing a frame for the environment
- standalone markdown editor / Standalone Markdown editors
- stdlib module
- reference / Custom functions
- Syntastic
- reference / Vim
- syntax errors / Syntax errors
- System Under Test (SUT) / Acceptance testing with Test Kitchen
T
- Tabular
- reference / Vim
- tasks, Bolt
- tasks, Puppet workflow
- about / Tasks
- component repositories, cloning / Clone and edit the component repositories
- component repositories, editing / Clone and edit the component repositories
- control repository, cloning / Cloning the control repository
- control repository, editing / Editing the control repository
- environment, deploying on Puppet Master / Deploying the new environment on the Puppet Master
- modifications, testing / Testing the changes
- branches, merging / Merging branches
- Git tags / Git tags and versioning
- versioning / Git tags and versioning
- template repository
- moduleroot / The pdk new command
- moduleroot_init / The pdk new command
- object_templates / The pdk new command
- config_defaults.yaml / The pdk new command
- Test Kitchen
- about / Test Kitchen and kitchen-puppet
- preparing, on Jenkins node / Preparing Test Kitchen on our Jenkins node
- TextMate
- transit backend
- enabling / Enabling the transit backend
- tuning
- about / Tuning
- of Puppetserver / Puppetserver tuning
- of PuppetDB / PuppetDB tuning
- type parameters / Adding type parameters
- type properties
- adding / Adding additional type properties
- managing, GET method used / Using the GET and SET methods to manage type properties
- managing, SET method used / Using the GET and SET methods to manage type properties
- types
- about / Types and providers
- creating / Types, Creating and distributing the type
- reference / Types
- distributing / Creating and distributing the type
- namevar special attribute, adding / Adding the namevar special attribute
- optional ensure property, adding / Adding the optional ensure property
- parameter defaults, setting / Setting property and parameter defaults
- property, setting / Setting property and parameter defaults
- input value, checking with validate block / Checking the input value with a validate block
- input value, checking against newvalues array / Checking the input value against a newvalues array
- datatype compatibility, checking with munge / Checking datatype compatibility with munge
- autorequire, using for implicit relationships / Using autorequire for implicit relationships
- arrays, used for assigning values to attributes / Using arrays to assign a list of values to an attribute
- desc method, used for adding inline documentation / Using the desc method to add inline documentation
U
- unit testing
- modules / Unit testing your module
- with Puppet RSpec / Unit testing with Puppet RSpec
- use cases, exported resources
- hosts file / Hosts file
- load balancing / Load balancing
- database connections / Database connections
- concat / Concat, file lines, and you!, Concat – the hammer
- file lines / Concat, file lines, and you!, file_line – the scalpel
V
- Vault
- using, as encryption backend / Using Vault as an encryption backend
- configuring / Installing and configuring Vault
- installing / Installing and configuring Vault
- unsealing / Unsealing Vault
- Vim
- Vim-fugitive
- reference / Vim
- vim-instant-markdown plugin
- reference / Vim
- Vim-puppet
- reference / Vim
- virtual resources
- about / Virtual and exported resources
- example / Virtual resources
- tags / Tags
- Visual Studio
- reference / Visual Studio, Visual Studio
W
- workflow, Puppet
- about / Puppet workflow
- benefits / Puppet workflow
- ease of use / Ease of use
- rapid feedback / Rapid feedback
- ease of onboarding / Ease of onboarding
- quality control / Quality control
- designing / Designing a Puppet workflow
- components / Components of the Puppet workflow