Index
Symbols
- ! (not) operator, Using Comparison Operators
- # (comment mark), Defining Variables
- $::setting configuration settings hash, Server Configuration Settings
- $::top-level namespace, Using Out-of-Scope Variables
- $EDITOR command, In Your Profile
- * (splat operator), Creating Arrays and Hashes, Defining Attributes with a Hash, Evaluating Conditional Expressions, Capturing Extra Parameters
- - (removal) operator, Removing from Arrays and Hashes
- --debug argument, Learning More About Puppet Types, Learning More About Puppet Providers
- --limit argument, Limiting Concurrency
- --noop command-line flag, Preventing Action
- --one argument, Limiting Concurrency
- --script option , Viewing Node Inventory
- --tags service, Filtering with Tags
- --verbose setting, Listing Modules in the Puppetfile, Updating a Single Environment
- -> (chaining arrows), Chaining Resources with Arrows
- /vagrant filesystem, verifying, Verifying the /vagrant Filesystem
- /var filesystem, Enabling use of /var filesystem
- :: separator, Naming Parameters Keys Correctly
- :libs argument, Identifying New Features
- << (append) operator, Adding to Arrays and Hashes
- <| |> collectors, Processing with Collectors
- = operator, Redefining Variables
- => (hash rockets/fat commas), Implementing Resources, Mapping Hash Keys and Values
- =~ (match operator), Matching Regular Expressions, Testing Values, Comparing Strings with Regular Expressions
- @ prefix, Accessing Puppet variables with ERB
- @( ) start tag, Using Variables in Strings
- @doc tag, Creating Puppet Types
- @examples meta tag, Showing Examples
- @param meta tag, Listing Parameters
- @returns meta tag, Documenting Functions
- \ (escape character), Preventing Interpolation
- \n (linefeed), Using Variables in Strings
- \r (carriage return), Using Variables in Strings
- \s (space), Using Variables in Strings
- \t (tab), Using Variables in Strings
- \u (Unicode assignment), Using Unicode Characters
- | | (pipe operator), Building Lambda Blocks
A
- acceptance tests, Creating Acceptance Tests-Doing more with Beaker
- acknowledgments, Acknowledgments
- ActiveMQ middleware, Enabling the Middleware
- ActiveRecord storeconfigs, Querying PuppetDB
- agent certificates, autosigning, Autosigning Agent Certificates-Naive Autosigning
- aggregate blocks, Aggregating results
- Agile development processes, Is Puppet DevOps?
- AIO (All In One) installer, Reviewing Dependencies
- aliases
- All In One (AIO) installer, Reviewing Dependencies
- allow_managed_resources, Block MCollective from Puppet resources
- Allspaw, John, Is Puppet DevOps?
- alternate platforms
- AMD-V virtualization, Initializing the Vagrant Setup
- and operator, Using Comparison Operators
- Apache, Installing Apache for Puppet Dashboard
- Apache httpd, Installing Apache
- append (<<) operator, Adding to Arrays and Hashes
- Arrays
- assignments, chaining, Chaining Assignments
- attributes
- audit attribute, Auditing Changes, Running Audit Inspections
- audit resource, Backing Up Files Changed on Nodes
- authentication and authorization, Configuring Server Authentication
- automatic parameter lookup, Looking Up Input from Hiera, Using Array and Hash Merges
- autorequire, Assuming Implicit Dependencies, Defining Implicit Dependencies
- autosigned agent certificates, Autosigning Agent Certificates-Naive Autosigning
B
- backslash (\), Preventing Interpolation
- Backus Naur form, Using Comparison Operators
- backward compatibility, Preparing for the Upgrade
- bare word strings, Avoiding Reserved Words
- basemodulepath configuration setting, Enabling Directory Environments
- Bash shells, starting, Starting a Bash Shell
- Beaker, Adding Beaker, Creating Acceptance Tests
- before metaparameter, Ordering Resources
- best practices
- chained vs. expanded assignments, Chaining Assignments
- change
- collectors, Processing with Collectors
- conditional statements, Defining Defaults in a Params Manifest
- creating a private Puppet Forge, Creating a Private Puppet Forge
- default parameter values, Accepting Input
- dependencies
- efficacy of, Afterword
- environment caches, Disabling the Environment Cache
- external node classifiers (ENCs), Using a Node Terminus
- facts
- files
- idempotent operations, Was That Idempotent?
- if/then blocks, Building Subclasses
- input parameters, Validating Input with Data Types
- log levels, Processing Puppet Node Reports
- Lookup merge strategy, Testing Merge Strategy
- manifests
- modules
- multiple data types, Valid Types
- naive autosigning, Naive Autosigning
- network devices, Best Practices for Network Devices
- program execution, Executing Programs
- Puppet agent names, The Node Is Not the Server
- puppet apply vs. Puppet Server
- Puppet Dashboard configuration, Enabling the Dashboard Rails service
- Puppet servers
- resources
- security warning messages, Eliminating certificate errors
- semicolon use, Chaining Expressions with a Semicolon
- standardized paths, Synchronizing All Environments
- templates
- unresponsive nodes, Identifying out-of-sync nodes
- variables
- bit-shifting operators, Modifying with Operators
- Bode, Dan, Learning More About Puppet Types
- bonded interfaces, Enabling Link Aggregation
- Boolean data type, Testing Boolean Facts
- boolean operators, Using Comparison Operators
- boolean true/false, Using Comparison Operators, Testing Boolean Facts
- boxes, downloading, Downloading a Box
- braces, curly, Using Braces to Limit Problems, Using Variables in Resources
- brackets, square, Using Variables in Resources
- bucketdir configuration setting, Finding File Backups
C
- call_function() method, Calling other functions
- captures-rest, Capturing Extra Parameters
- carriage return (\r), Using Variables in Strings
- Carter, Gerald, Querying LDAP
- case expression, Testing Values
- case statements, Evaluating Conditional Expressions
- catalog builder, Understanding the Catalog Builder-Server
- catalog evaluation, Viewing node status
- catalogs
- CentOS 7
- certificate authority, The Server Is Not the Node-The Node Is Not the Server, Configuring TLS Certificates, Managing TLS Certificates-Learning More About TLS Authentication, Sharing a Single Puppet CA
- certificate revocation list (CRL), Distributing the CA Revocation List
- certificate signing request (CSR) , Creating a Key Pair, Policy-Based Autosigning
- chaining arrows (->), Chaining Resources with Arrows
- change
- CHANGELOG.md file, Maintaining the Change Log
- CI (continuous integration) tools, Making Tests Convenient
- Cisco Nexus switches
- classes
- clientbucketdir configuration setting, Finding File Backups, Backing Up Files Changed on Nodes
- clone command, Adding New Environments
- collections, What Is a Puppet Collection?
- collectors (<| |>), Processing with Collectors
- comma-separated lists, creating, Creating Arrays and Hashes
- commands method, Defining Commands for Use
- comment mark (#), Defining Variables
- comparison operators, Using Comparison Operators
- concatenation, Adding to Arrays and Hashes
- conditional expressions, evaluating, Evaluating Conditional Expressions
- ConEmu terminal, Starting a Bash Shell
- configuration file environments, Upgrading Config Environments
- configuration language
- building lambda blocks, Building Lambda Blocks
- calling functions in manifests, Calling Functions in Manifests
- looping through iterations, Looping Through Iterations
- declaring multiple resource bodies, Declaring Multiple Resource Bodies
- declaring multiple resource titles, Declaring Multiple Resource Titles
- defining attributes with a hash, Defining Attributes with a Hash
- defining variables, Defining Variables-Learning More
- evaluating conditional expressions, Evaluating Conditional Expressions
- finding system facts, Finding Facts
- introduction to, Using the Puppet Configuration Language
- matching regular expressions, Matching Regular Expressions
- modifying with operators, Modifying with Operators-Order of Operations
- overview of, Reviewing Puppet Configuration Language
- using comparison operators, Using Comparison Operators
- using variables in resources, Using Variables in Resources
- confine statement, Confining facts
- ConsoleAppender, Configuring Server Logs
- contacting the author, Contacting the Author
- content attribute, Sharing Files
- Continuous Integration/Delivery (CI/CD), Is Puppet DevOps?
- control repositories, Creating a Control Repository
- convergence, Viewing node status
- copyright, Listing Authors and Copyright
- create method, Ensure the Resource State
- creates attribute, Executing Programs
- cron entries, Removing Cron Purge, Running Puppet Automatically
- curly braces, Using Braces to Limit Problems, Using Variables in Resources
- custom facts
- custom modules
- best practices, Best Practices for Module Design
- class manifests, Creating a Class Manifest
- class resources, Declaring Class Resources
- directory synchronization, Synchronizing Directories
- file sharing, Sharing Files
- file synchronization, Testing File Synchronization
- input, Accepting Input
- installing, Installing the Module
- module structure, Understanding Module Structure
- overview of, Designing a Custom Module, Reviewing Custom Modules
- parsing templates, Parsing Templates-Creating Readable Templates
- testing, Testing the Module
- variables and resources in other classes, Peeking Beneath the Hood
- Cygwin package, On Your Desktop
D
- dashboard VM, Starting the dashboard VM
- dashboards
- dashserver node, Enabling the Puppet agent on Puppet Dashboard
- data access
- binding data providers in modules, Binding Data Providers in Modules-Performing Lookup Queries
- database queries, Querying PuppetDB
- documenting data sources, Identifying a Module Data Source
- environment data, Utilizing Hiera Hierarchy in Environments, Using Custom Backends in Environments
- environment functions, Creating an environment function
- functions run on Puppet servers and, Functions Run on the Server
- installing Hiera data and modules, Installing Hiera Data and Modules
- looking up Hiera data, Looking Up Hiera Data
- performing lookup queries, Performing Lookup Queries
- providing global data, Providing Global Data
- with Puppet Lookup, Accepting Input
- querying environment data from Hiera, Querying Environment Data from Hiera
- using data from a function, Using data from a function
- using data from Hiera, Using Data from Hiera
- using server data in manifests, Using Server Data in Your Manifests-Server Configuration Settings
- data types
- data-driven policy, Separating Data from Code
- Debian, Debian and Ubuntu
- declarative permissions, Adding Declarative Permissions
- declarative programming
- benefits of, Why Declarative, Declaring Final State
- declaring final state, Declaring Final State
- defined, Reviewing Declarative Programming
- handling change with, Handling Change
- vs. imperative or procedural, Thinking Declarative, Avoiding Imperative Manifests, Avoiding Redefinition
- review of, Reviewing Declarative Programming
- using idempotence, Using Idempotence
- default environment, Verifying the Production Environment
- default: option, Evaluating Conditional Expressions
- default: resource title, Avoiding Resource Default Bleed
- defaultfor method , Assigning a Default Provider
- defaults class, Tracking Resource Defaults Scope
- defined resource types, Qualifying Defined Types, Creating New Resource Types
- dependencies
- assuming implicit, Assuming Implicit Dependencies
- avoiding circular, Avoiding the Root User Trap, Sourcing a Common Dependency
- avoiding failures, Avoiding Dependency Failures
- bundling, Bundling Dependencies
- debugging dependency cycles, Debugging Dependency Cycles
- defining implicit, Defining Implicit Dependencies
- dependency graph, Debugging Dependency Cycles
- installing, Reviewing Dependencies
- installing for module testing, Installing Dependencies
- installing Puppet Dashboard, Installing Dashboard Dependencies-Enabling the Puppet agent on Puppet Dashboard
- listing in documentation, Listing Dependencies
- managing, Managing Dependencies
- notifying from dynamic resources, Notifying Dependencies from Dynamic Resources
- ordering, Ordering Dependencies-Solving Unknown Resource Dependencies
- placing within optional classes, Placing Dependencies Within Optional Classes
- Puppet ecosystem management, What Is a Puppet Collection?
- soft, Assuming Implicit Dependencies
- solving unknown, Solving Unknown Resource Dependencies
- sourcing common, Sourcing a Common Dependency
- dependency graph, Inspecting Events
- deployment strategies, selecting, Making the Right Choice
- deprecated features
- configuration file environments, Upgrading Config Environments
- database queries, Querying PuppetDB
- default report processor, Installing the Tagmail Report Processor
- import statement, Replacing Import
- node inheritance, Removing Node Inheritence, Removing Node Inheritance
- puppet doc command, Documenting Modules with Puppet Strings
- puppet kick, Disabling puppet kick, Controlling Puppet with MCollective
- Puppet master, Why Thereās Really No Choice
- relative class names, Qualifying Relative Class Names
- Ruby DSL, Junking the Ruby DSL
- search() function, Losing the Search Function
- destroy method, Ensure the Resource State
- device_hiera module, Installing the Device_Hiera Module, Managing Configuration-Puppetizing Juniper Devices
- device_hiera::interfaces::ports array, Applying Default Configs to Interfaces
- DevOps
- directed acyclic graph, Understanding Puppet Ordering, Debugging Dependency Cycles
- directories, synchronizing, Synchronizing Directories
- directory environments, Upgrading Config Environments, Using Directory Environments, Enabling Directory Environments, Disabling Environments
- discovery plugin, Limiting Targets with Filters
- dispatch method, Accepting varied input with dispatch
- display command, Populating a New Installation
- Django Forge, Django Forge
- don't repeat yourself (DRY) development, Defining Attributes with a Hash, Installing the Device_Hiera Module
- double quotes, Executing Programs, Using Variables in Strings, Using Variables in Resources
E
- each() function, each()
- echo command, Managing Files
- Eclipse IDE, On Your Desktop
- editors
- else clause, Evaluating Conditional Expressions
- else statements, Adding else to unless
- Emacs text editor, On the Virtual System
- ENC dashboard, ENC Dashboard
- ensurable method, Defining Ensurable, Ensure the Resource State
- Enterprise Console, Upgrading to the Enterprise Console-Evaluating Puppet Enterprise, Managing Environments with r10k, Other Platforms
- Enterprise Linux 7 Collection, Adding the Package Repository
- environment customization
- assigning environments to nodes, Assigning Environments to Nodes
- cache timeout, Disabling the Environment Cache
- choosing manifest paths, Choosing a Manifest Path
- configuring environments, Environment Configuration File
- configuring environnment data, Using Environment Data
- disabling environments, Disabling Environments
- enabling directory environments, Enabling Directory Environments
- environment isolation, Understanding Environment Isolation
- Hiera configuration, Utilizing Hiera Hierarchy in Environments
- invalidating environment caches, Invalidating the Environment Cache
- managing environments with r10k, Managing Environments with r10k-Replicating Hiera Data
- overview of, Reviewing Environments
- restarting JRuby when updating plugins, Restarting JRuby When Updating Plugins
- strategizing environment use, Strategizing How to Use Environments-Supporting Diverse Teams with Environments
- environment variable, Replicating Hiera Data
- environment:: namespace, Puppet Functions
- environmentpath configuration setting, Enabling Directory Environments
- environments
- adding new, Adding New Environments
- benefits of, Customizing Environments
- configuring, Environment Configuration File
- customizing, Understanding Environment Isolation-Supporting Diverse Teams with Environments
- disabling, Disabling Environments
- drawbacks of, Managing Environments with r10k
- environment isolation, Understanding Environment Isolation
- invalidating environment caches, Invalidating the Environment Cache
- layered, Promoting Change Through Layers
- managing with r10k, Managing Environments with r10k
- (see also directory environments; test environments)
- overview of, Reviewing Environments
- solving one-off problems using, Solving One-Off Problems Using Environments
- supporting diverse teams with, Supporting Diverse Teams with Environments
- updating single, Updating a Single Environment
- EPEL repository, Installing Phusion Passenger, Ensuring dependencies
- EPP templates, Parsing Templates-Learning more about ERB
- epp() function, Using Puppet EPP Templates
- equals sign, Defining Variables
- ERB templates, Parsing Templates-Learning more about ERB, Defining Ad Hoc Configuration Parameters
- error reports, configuring, Configuring Error Reporting, Creating a Custom Report Processor
- escape character (\), Preventing Interpolation
- escape sequences, Using Variables in Strings, Custom (Ruby) Facts
- escrow refresh resources, Solving Unknown Resource Dependencies
- Evaluation Errors, Using Variables in Resources
- EX4300 switch, Installing the Junos Puppet Agent
- exec resources, Executing Programs-Avoiding Imperative Manifests, Triggering Refresh Events
- executable facts, Programs
- exists? method, Ensure the Resource State
- explicit ordering, Order of Operations, Understanding Puppet Ordering
- expressions
- external facts, External Facts
- external node classifiers (ENCs), Removing Node Inheritence, Running an External Node Classifier, Configuring Puppet Dashboard, Using Dashboard as a Node Classifier-Querying the dashboardās ENC, Assigning Environments to Nodes
F
- Facter
- factname, Using Variables in Resources
- facts
- facts hash, Finding Facts, Using Variables in Resources
- fat commas (=>), Implementing Resources, Mapping Hash Keys and Values
- Fedora, Fedora
- file management
- file modes
- file resource, Was That Idempotent?-Avoiding Imperative Manifests, Using Variables in Resources, Sharing Files, Backing Up Files Changed on Nodes
- FileAppender, Configuring Server Logs
- filebucket diff command, Restoring Files
- Filesystem Hierarchy Standard (FHS), Store Server Data Files Separately, Enabling use of /var filesystem
- filter() function, filter()
- filters, Limiting Targets with Filters
- find command, Checking Puppet Status
- fire and forget situation, Avoiding Imperative Manifests
- firewalls
- fixtures, defining, Defining Fixtures
- flush method, Adjusting Properties
- Foreman, Foreman
- fqdn_rand(minutes,string) function, Splaying Puppet Agent Cron Jobs
- Freenode IRC channels, Accessing Community Support
- Friedl, Jeffrey, Matching Regular Expressions
- fully qualified names, Qualifying Relative Class Names
- functions
- break, break()
- calling in manifests, Calling Functions in Manifests
- custom, Using Custom Functions
- defined, Calling Functions in Manifests
- defining, Defining Functions-Using Custom Functions
- documenting, Documenting Functions
- Hiera execution, Puppet variable and function lookup
- next, next()
- querying data from, Creating an environment function
- return, return()
- run on Puppet servers, Functions Run on the Server
- testing, Testing Functions
- using data from, Using data from a function
- future parser feature, Using the Puppet Configuration Language, Testing with the Future Parser
H
- hash rockets (=>), Implementing Resources, Mapping Hash Keys and Values
- hashes
- Hashimoto, Mitchell, Initializing the Vagrant Setup
- Heredoc format, Using Variables in Strings, Indenting Heredoc
- Hiera
- backends, Selecting a Hiera Backend
- benefits of, Reviewing Dependencies, Introducing Hiera
- configuring, Configuring Hiera-Complete Example
- configuring for MCollective, Configuring Hiera for MCollective
- copying Hiera data, Copying Hiera Data
- custom backend, Using Custom Backends in Environments
- data format, Selecting a Data Source
- data types, Creating Hiera Data
- default values, Defaults
- defining module config with, Defining Config with Hiera
- environment data, Using Environment Data
- file version, Version
- hierarchy, Hierarchy
- hierarchy globs, Paths
- hierarchy mapped_paths, Paths
- hierarchy paths, Paths
- installing Hiera data and modules, Installing Hiera Data and Modules
- looking up Hiera data, Looking Up Hiera Data
- looking up input from, Looking Up Input from Hiera-Replacing Direct Hiera Calls
- module assignment with, Using Hiera for Module Assignment
- multilevel hierarchy of, Introducing Hiera
- providing global data, Providing Global Data
- querying data from environment, Querying Environment Data from Hiera
- removing environment from global Hiera configuration, Removing Environment Paths from Global Data
- replacing direct Hiera calls, Replacing Direct Hiera Calls
- replicating Hiera data, Replicating Hiera Data
- using data from, Using Data from Hiera
- using input in module testing, Using Hiera Input
- HOCON (Human-Optimized Config Object Notation), Configuring Puppet Server, Invalidating the Environment Cache
- HOCON file format, Hiera data in HOCON
- HomeBrew, Ruby for Mac
- host filters, Limiting Targets with Filters
- https:// URI pattern, Sharing Files
I
- idempotent operations, Why Declarative, Using Idempotence, Was That Idempotent?
- if/else sequences, Avoiding Fixed Values in Attribute Values
- if/elsif/else statements, Evaluating Conditional Expressions
- ignoreimport setting, Replacing Import
- imperative programming, Why Declarative, Thinking Declarative, Avoiding Imperative Manifests, Tossing Declarative to the Wind
- import statement, Replacing Import
- include statement, Replacing Import
- indentation styles, Declaring Multiple Resource Bodies
- installation (see Puppet installation)
- instances class method, Providing a List of Instances
- internal network adapters, Adding an Internal Network Adapter-Configuring the Internal Network Adapter
- interpolated strings, Using Variables in Strings, Using Variables in Resources
- interpolation, preventing, Preventing Interpolation
- inventory query, Viewing Node Inventory
- inventory service, Querying PuppetDB
- iptables command, IP Tables
- IPv6 connections, IPv6 Dual-Stack Puppet Master, IPv6 Dual-Stack Puppet Server, Connecting MCollective Servers
- IRC channel, Accessing Community Support
- issues tag, Promoting the Project
- Iterable, comparison of, Testing Values
- iterations
- additional resources, Iteration Wrap-Up
- benefits of, Iteration Wrap-Up
- capturing extra parameters, Capturing Extra Parameters
- each, each()
- examples of, Looping Through Iterations
- filter, filter()
- map, map()
- overview of, Looping Through Iterations
- reduce, reduce()
- reverse_each, reverse_each()
- slice, slice()
- step, step()
- terminating evaluation, Terminating Iteration Evaluation
- uses for, Looping Through Iterations
- with, with()
- iTerm2 terminal, Starting a Bash Shell
J
- JDK logback library, Configuring Server Logs
- JRuby interpreter, Embracing the Future with Puppet Server, Restarting JRuby When Updating Plugins
- JSON file format, Hiera data in JSON, Structured data
- Juniper devices, Puppetizing Juniper Devices
- adjusting physical interface settings, Adjusting Physical Interface Settings
- creating puppet user, Creating the Puppet User
- defining ad hoc configuration parameters, Defining Ad Hoc Configuration Parameters
- distributing Junos event scripts, Distributing Junos Event Scripts
- enabling link aggregation, Enabling Link Aggregation
- installing Junos Puppet agents, Installing the Junos Puppet Agent
- installing modules on Puppet servers, Installing Modules on the Puppet Server
- preparing Junos devices, Preparing the Junos Device
- puppetizing, Puppetizing Juniper Devices
- running Puppet automatically, Running Puppet Automatically
- simplifying layer-2 VLANs, Simplifying Layer-2 VLANs
- supported devices, Supported Devices
- troubleshooting, Troubleshooting
- Junos SLAX scripts, Distributing Junos Event Scripts
L
- lambda blocks, building, Building Lambda Blocks
- layer-2 switching services, Simplifying Layer-2 VLANs
- LDAP (Lightweight Directory Access Protocol), Querying LDAP
- LDAP System Administration (Carter), Querying LDAP
- leading underscores, Sourcing a Common Dependency
- learning environments
- cloning the learning repository, Cloning the Learning Repository
- downloading boxes, Downloading a Box
- helpful utilities, Installing Some Helpful Utilities
- making tests convenient, Making Tests Convenient
- non-Vagrant initialization, Initializing Non-Vagrant Systems
- overview, Creating a Learning Environment, Reviewing the Learning Environment
- selecting, Creating a Learning Environment
- starting a Bash Shell, Starting a Bash Shell
- suspending/resuming, Initializing the Vagrant Setup
- text editor selection, Choosing a Text Editor
- Vagrant initialization, Initializing the Vagrant Setup
- Vagrant installation
- verifying /vagrant filesystem, Verifying the /vagrant Filesystem
- Learning MCollective (Rhett), Learning More About MCollective
- licenses, Identifying the License
- line ending conversions, configuring, Installing Git Tools on Windows
- linefeed (\n), Using Variables in Strings
- link aggregation group (LAG), Enabling Link Aggregation
- Linux
- Liu, Nan, Learning More About Puppet Types
- load balancers, Using a Load Balancer, Limiting Concurrency
- log4j logging library, Configuring Server Logs
- logback library, Configuring Server Logs
- logging
- loglevel attribute, Defining Log Level
- Logs/VBox.log file, Initializing the Vagrant Setup
- lookup() function (see puppet lookup)
- lookup_options, Specifying Merge Strategy in Data
M
- Macintosh
- MacVim editor, On Your Desktop
- Magic Monkey Juice (tips and tricks), Drinking the Magic Monkey Juice-Allowing Anyone to sudo puppet
- man in the middle attacks, Reviewing Node Authentication
- manifest upgrades (Puppet 3)
- adding declarative permissions, Adding Declarative Permissions
- adding else to unless, Adding else to unless
- adjusting networking facts, Adjusting Networking Facts
- calling functions in strings, Calling Functions in Strings
- chaining assignments, Chaining Assignments
- chaining expressions with semicolons, Chaining Expressions with a Semicolon
- configuring error reporting, Configuring Error Reporting
- hash and array literals, Using Hash and Array Literals
- letting expressions stand alone, Letting Expressions Stand Alone
- matching string Regexps, Matching String Regexps
- preventing numeric assignment, Preventing Numeric Assignment
- qualifying defined types, Qualifying Defined Types
- quoting strings, Quoting Strings
- removing cron purge, Removing Cron Purge
- replacing msi package provider, Replacing MSI Package Provider
- testing Boolean facts, Testing Boolean Facts
- validating variable names, Validating Variable Names
- manifests
- applying, Applying a Manifest
- avoiding imperative, Avoiding Imperative Manifests
- best practices for, Best Practices for Writing Manifests
- built in resource types, Learning More About Puppet Manifests
- calling functions in, Calling Functions in Manifests
- choosing manifest paths, Choosing a Manifest Path
- class manifests in custom modules, Creating a Class Manifest
- declaring resources, Declaring Resources
- defined, How Puppet Works, Writing Manifests
- executing programs, Executing Programs
- file extension for, Implementing Resources
- idempotent operations, Was That Idempotent?
- implementing resources, Implementing Resources
- managing files, Managing Files
- overview of, Reviewing Writing Manifests
- practice build, Testing Yourself
- preinstalled, Implementing Resources
- testing, Applying a Manifest
- viewing resources, Viewing Resources
- writing for Windows, Writing Manifests for Windows
- map() function, map()
- Marionette Collective (see MCollective)
- Markdown format, Learning Markdown
- Mastering Regular Expressions (Friedl), Matching Regular Expressions
- match operator (=~), Matching Regular Expressions, Testing Values, Comparing Strings with Regular Expressions
- mco puppet, Invoking Ad Hoc Puppet Runs
- MCollective
- additional resources, Learning More About MCollective
- benefits of, Controlling Puppet with MCollective
- checking Puppet status with, Checking Puppet Status
- configuring, Configuring MCollective-Sharing Facts with Puppet
- disabling Puppet agents, Disabling the Puppet Agent
- invoking ad-hoc Puppet runs, Invoking Ad Hoc Puppet Runs
- limiting concurrency, Limiting Concurrency
- limiting targets with filters, Limiting Targets with Filters
- manipulating Puppet resource types, Manipulating Puppet Resource Types
- moving config directory, Moving the MCollective Config Directory
- viewing node inventory, Viewing Node Inventory
- vs. Puppet Application Orchestration, Comparing to Puppet Application Orchestration
- mcollective::facts::cronjob::run_every parameter, Sharing Facts with Puppet
- mcollective::plugin::agents hash, Installing MCollective Agents and Clients
- memory usage, Limiting Memory Usage
- merge parameter, Using Array and Hash Merges
- message attribute, Implementing Resources
- messages
- metacharacters, Custom (Ruby) Facts
- metadata, updating old, Updating Old Metadata, Updating the Module Metadata
- (see also module metadata)
- metaparameters, Controlling Resource Processing-Preventing Action, Expressing Relationships, Ordering Dependencies, Containing Classes
- middleware, Enabling the Middleware
- MinTTY terminal emulator, Installing Git Tools on Windows, Initializing the Vagrant Setup
- module documentation
- best practices for, Best Practices for Documenting Modules
- documenting classes and types, Documenting the Classes and Types-Listing Authors and Copyright
- documenting functions, Documenting Functions
- evolving and improving, Evolving and Improving
- generating, Generating Documentation
- importance of, Documenting Modules
- learning Markdown, Learning Markdown
- maintaining change logs, Maintaining the Change Log
- puppet doc vs. puppetlabs-strings, Documenting Modules with Puppet Strings
- updating module metadata, Updating Module Metadata-Updating Old Metadata
- writing good READMEs, Writing a Good README
- module extensions/plugins
- adding custom facts, Adding Custom Facts-Understanding Implementation Issues
- adding new providers, Adding New Providers-Learning More About Puppet Providers
- binding data providers in modules, Binding Data Providers in Modules-Performing Lookup Queries
- creating Puppet types, Creating Puppet Types-Learning More About Puppet Types
- defining functions, Defining Functions-Using Custom Functions
- identifying new features, Identifying New Features
- overview of, Extending Modules with Plugins, Reviewing Module Plugins
- requirements for module plugins, Requirements for Module Plugins
- restarting JRuby when updating plugins, Restarting JRuby When Updating Plugins
- vbguest, Install the Vagrant vbguest Plugin, Verifying the /vagrant Filesystem
- module improvements
- best practices for, Best Practices for Module Improvements
- building subclasses, Building Subclasses
- calling other modules, Calling Other Modules-Using a Different Module
- containing classes, Containing Classes
- creating new resource types, Creating New Resource Types
- creating reusable modules, Creating Reusable Modules-Defining Defaults in a Params Manifest
- looking up input from Hiera, Looking Up Input from Hiera-Replacing Direct Hiera Calls
- ordering dependencies, Ordering Dependencies-Solving Unknown Resource Dependencies
- overview of, Improving the Module, Reviewing Module Improvements
- validating input with data types, Validating Input with Data Types-Revising the Module
- variable scope, Understanding Variable Scope-Redefining Variables
- module metadata, Updating Module Metadata-Updating Old Metadata
- module publishing, Publishing Modules-Getting Approved Status from Puppet Labs
- module testing
- adding Beaker, Adding Beaker
- bundling dependencies, Bundling Dependencies
- creating acceptance tests, Creating Acceptance Tests-Doing more with Beaker
- defining fixtures, Defining Fixtures
- defining RSpec unit tests, Defining RSpec Unit Tests-Testing Other Types
- importance of, Testing Modules
- installing dependencies, Installing Dependencies
- installing Ruby, Installing Ruby
- locating documentation for, Finding Documentation
- module preparation, Preparing Your Module
- overview of, Reviewing Testing Modules
- using skeletons with testing features, Using Skeletons with Testing Features
- modulepath, Installing the Module
- modules
- assigning to nodes, Assigning Modules to Nodes-Upgrading from Puppet 2 or 3
- benefits of, Using Modules
- defining config with Hiera, Defining Config with Hiera
- evaluating, Evaluating Module Quality
- examining, Examining a Module
- finding, Finding Modules
- finding Windows-specific, Finding Windows-Specific Modules
- generating module skeletons, Generating a Module Skeleton
- installing, Installing Modules
- naming, Choosing a Module Name
- overview of, Reviewing Modules
- quality scores of, Quality Score
- testing, Testing a Single Module
- upgrading from Puppet 2 or 3, Upgrading from Puppet 2 or 3
- writing on Windows systems, On Your Desktop
- msi Windows package provider, Replacing MSI Package Provider
- munge values, Validating Input Values
- MX Series Universal Edge Router (vMX), Supported Devices
- MySQL, Preparing the database
N
- naive autosigning, Naive Autosigning
- name parameter, Creating New Resource Types
- name-based autosigning, Name-Based Autosigning
- namevar attribute, Adding Aliases, Accepting Params and Properties
- Nano text editor, On the Virtual System
- NetDev standard library
- netdev_interface resource, Adjusting Physical Interface Settings
- network devices
- newvalues() method, Validating Input Values
- nginx web server, Installing Apache, Installing Apache for Puppet Dashboard
- no operation (noop) attribute, Preventing Action
- node inheritance, Removing Node Inheritence, Removing Node Inheritance
- nodejs package, Ensuring dependencies
- nodes
- assigning environments to, Assigning Environments to Nodes
- assigning modules to, Assigning Modules to Nodes-Upgrading from Puppet 2 or 3
- authentication process, Reviewing Node Authentication
- avoiding module assignments, Avoiding Node Assignments in Manifests
- backing up files changed on, Backing Up Files Changed on Nodes
- certnames of, The Node Is Not the Server
- connecting to servers, Connecting a Node-Learning More About Puppet Server
- conventional types of, Node
- defined, Node
- duplicating, Duplicating a Master or Node
- executing commands on subsets, How Puppet Works
- external node classifiers (ENCs), Running an External Node Classifier, Configuring Puppet Dashboard, Using Dashboard as a Node Classifier-Querying the dashboardās ENC
- geographically dispersed, Managing Geographically Dispersed Nodes
- node scope, Understanding Node Scope
- recertification, The Server Is Not the Node
- report processing, Processing Puppet Node Reports-Creating a Custom Report Processor
- running acceptance tests on, Running tests on all nodes
- testing, Testing a Client Node
- unconventional types of, Node
- using a node terminus, Using a Node Terminus-Starting with Community Examples, Assigning Environments to Nodes
- viewing inventory of, Viewing Node Inventory
- viewing status on Puppet Dashboard, Viewing node status-Identifying out-of-sync nodes
- not (!) operator, Using Comparison Operators
- Notepad editor, On Your Desktop
- Notepad++ editor, On Your Desktop
- notice() function, Calling Functions in Manifests
- notify metaparameter, Triggering Refresh Events
- notify resource, Implementing Resources, Declaring Resources
- numbers, defining, Defining Numbers
- Numeric data types, Defining Numbers, Preventing Numeric Assignment
P
- package repositories, adding, Adding the Package Repository
- Package {} default, Avoiding Resource Default Bleed
- PanoPuppet, PanoPuppet
- parameter keys, Naming Parameters Keys Correctly
- params, Accepting Params and Properties
- params.pp class, Hating on Params.pp
- params.pp, lookup, Creating Reusable Modules
- parent scope, Understanding Parent Scope
- Passenger, Scaling the Puppet Master with Passenger, Installing Apache for Puppet Dashboard
- PATH environment, adjusting, Installing Git Tools on Windows, Reviewing Dependencies, Running Puppet Without sudo, Changing the Base Module Path
- period attribute, Limiting to a Schedule
- periodmatch attribute, Utilizing periodmatch
- permissions, declarative, Adding Declarative Permissions
- Phusion Passenger, Upgrading Easily with Puppet Master, Installing Phusion Passenger, Installing Passenger for Puppet Dashboard
- ping command, Validating the Installation
- pipe operator (| |), Building Lambda Blocks
- policy-based autosigning, Policy-Based Autosigning
- port channels, Enabling Link Aggregation
- PostgreSQL, Preparing the database
- prefix option, Configuring r10k Sources
- preshared key model, Generating Passwords
- pre_run_check method, Validating Input Values
- procedural programming, Thinking Declarative
- production environment
- programs (see manifests)
- project tag, Promoting the Project
- providers, tracking, Tracking Providers
- (see also Puppet providers)
- publishing modules, Publishing Modules-Getting Approved Status from Puppet Labs
- Pulp: Juicy Software Repository Management, Pulp
- PUP-5206 issue, Finding File Backups
- Puppet 3
- Puppet 4
- All In One installer, Reviewing Dependencies
- alternate platform installation, Installing Puppet on Other Platforms
- basics of, What Is Puppet?
- benefits of, What Is Puppet?, Why Use Puppet
- capabilities of, Preface
- vs. DevOps practices, Is Puppet DevOps?
- directory environments in, Enabling Directory Environments
- installation changes in, Reviewing Puppet 4 Changes
- introduction to, How Puppet Works
- IRC channel, Accessing Community Support
- learning approach, What to Expect from Me-How to Use This Book, Introduction-Time to Get Started
- learning prerequisites, What You Will Need
- learning support, Finding Support Resources
- Marionette Collective (MCollective), Controlling Puppet with MCollective
- node evaluation in, How Puppet Works
- user community, Finding Support Resources
- uses for, What Is Puppet?
- vs. imperative programming, Thinking Declarative, Avoiding Imperative Manifests
- Puppet agent all-in-one (AIO) package, Installing the Puppet Master
- Puppet agents
- Puppet Application Orchestration, Comparing to Puppet Application Orchestration
- puppet apply command, Applying a Manifest, Viewing Resources, Testing Yourself, Wrap-Up of Puppet Basics
- Puppet Dashboard
- alternatives to, Evaluating Alternative Dashboards-Foreman
- authentication, Installing the node classifier
- benefits of, Using Puppet Dashboard
- configuring, Configuring Puppet Dashboard
- connecting to Puppet servers, Connecting Puppet Dashboard to Puppet Server
- enabling, Enabling Puppet Dashboard-Enabling worker processes
- ensuring high performance, Ensuring a high-performance dashboard
- implementing in production, Implementing Dashboard in Production-Sizing the dashboard database
- installing dashboard dependencies, Installing Dashboard Dependencies-Enabling the Puppet agent on Puppet Dashboard
- locating plugins and tools, Finding Plugins and Tools
- using as a node classifier, Using Dashboard as a Node Classifier-Querying the dashboardās ENC
- viewing node status, Viewing node status-Identifying out-of-sync nodes
- vs. PuppetDB, Using Puppet Dashboard
- Puppet data types, Valid Types
- puppet device
- adding resource types and providers, Adding Resource Types and Providers
- applying default configs to interfaces, Applying Default Configs to Interfaces
- centralizing VLAN configuration, Centralizing VLAN Configuration
- configuring Puppet proxy agent, Configuring the Puppet Proxy Agent
- customizing interface configurations, Customizing Interface Configurations
- defining resource defaults in Hiera, Defining Resource Defaults in Hiera
- enabling SSH on the switch, Enabling SSH on the Switch
- installing device_hiera module, Installing the Device_Hiera Module
- managing network devices with, Managing Network Devices with Puppet Device
- merging defaults with other resources, Merging Defaults with Other Resources
- testing switch configurations, Testing Out the Switch Configuration
- puppet doc command, Documenting Modules with Puppet Strings, Installing YARD and Puppet Strings
- Puppet Enterprise Console, Upgrading to the Enterprise Console-Evaluating Puppet Enterprise, Managing Environments with r10k, Other Platforms
- Puppet EPP templates, Parsing Templates-Learning more about ERB
- Puppet Explorer, Puppet Explorer
- puppet facts find --terminus rest command, Querying PuppetDB
- puppet facts upload command , Querying PuppetDB
- Puppet features, Identifying New Features
- puppet filebucket, Testing File Synchronization
- puppet filebucket --local list command, Backing Up Files Changed on Nodes
- Puppet Forge, Puppet Forge, Listing Authors and Copyright, Identifying the License, Updating the Module Metadata-Getting Approved Status from Puppet Labs, Finding Windows-Specific Modules, Creating a Private Puppet Forge
- Puppet Forge Server, Puppet Forge Server
- Puppet functions, Puppet Functions
- Puppet gem, Defining the Main Class
- puppet inspect command, Running Audit Inspections
- Puppet installation
- adding package repositories, Adding the Package Repository
- confirming, Adding the Package Repository
- dependencies overview, Reviewing Dependencies
- installing Puppet agents, Installing the Puppet Agent
- making tests convenient, Making Tests Convenient
- on Linux/Unix, Reviewing Puppet 4 Changes
- on Windows, Windows
- overview of, Reviewing Puppet Installation
- Puppet 4 changes, Reviewing Puppet 4 Changes
- Puppet collections, What Is a Puppet Collection?
- running Puppet with sudo, Running Puppet with sudo
- running Puppet without sudo, Running Puppet Without sudo
- puppet job command , Comparing to Puppet Application Orchestration
- puppet kick, Disabling puppet kick, Controlling Puppet with MCollective
- Puppet Labs Puppet Collection, Adding the Package Repository, Installing Puppet Server
- Puppet Labs strings module, Installing YARD and Puppet Strings
- Puppet Labs support, Engaging Puppet Labs Support
- Puppet Labs Yum repository, Processing with Collectors, Installing Passenger for Puppet Dashboard, Enabling the Puppet Labs Repository
- Puppet Language Style Guide, Chaining Resources with Arrows
- puppet lookup
- Puppet Lookup, Accepting Input
- Puppet masters
- creating, Creating a Puppet Master-IPv6 Dual-Stack Puppet Master
- debugging, Debugging Puppet Master
- defined, Using a Puppet Server
- deprecation of, Why Thereās Really No Choice, Running the WEBrick Server
- disabling CA on, Disabling CA on a Puppet Master
- duplicating, Duplicating a Master or Node
- migrating existing, Migrating an Existing Puppet Master-Upgrading Clients
- vs. Puppet Server service, Upgrading Easily with Puppet Master, Avoiding Obsolete Settings
- puppet module build command, Packaging a Module
- puppet module command, Puppet Forge
- puppet module generate command, Generating a Module Skeleton, Writing a Good README, Updating Module Metadata
- Puppet providers
- adding new, Adding New Providers
- adjusting properties, Adjusting Properties
- assigning default, Assigning a Default Provider
- debugging, Learning More About Puppet Providers
- defining commands for use, Defining Commands for Use
- determining provider suitability, Determining Provider Suitability
- ensuring resource states, Ensure the Resource State
- providing lists of instances, Providing a List of Instances
- taking advantage of caching, Taking Advantage of Caching
- tracking, Tracking Providers
- puppet resource command, Viewing Resources, Viewing Resources, Testing Yourself
- Puppet run, Viewing node status
- Puppet Server service
- authentication and authorization, Configuring Server Authentication
- backward compatibility of, Embracing the Future with Puppet Server
- benefits of, Embracing the Future with Puppet Server
- configuring, Configuring Puppet Server-Controlling authorization for Puppet 3 agents, Avoiding Obsolete Settings
- creating, Creating a Puppet Server-Controlling authorization for Puppet 3 agents
- defined, Using a Puppet Server
- disabling CA on, Disabling CA on a Puppet Server
- environment cache invalidation, Invalidating the Environment Cache
- running, Running Puppet Server
- TLS keys, Store Server Data Files Separately
- Puppet servers
- backing up files changed on nodes, Backing Up Files Changed on Nodes
- benefits of, Benefits of Puppet Server
- best practices, Best Practices for Puppet Servers
- caring for, Good Practices-Trimming the File Bucket
- centralized, How Puppet Works
- choice of, Using a Puppet Server, Choosing Puppet Master Versus Puppet Server
- configuration settings, Server Configuration Settings
- connecting nodes to, Connecting a Node-Learning More About Puppet Server
- connecting Puppet Dashboard to, Connecting Puppet Dashboard to Puppet Server
- defined, Using a Puppet Server
- deploying at scale, Deploying Puppet Servers at Scale-Making the Right Choice
- deployment configuration, Server
- ensuring high-performance servers, Ensuring a High-Performance Server
- geographically dispersed, Managing Geographically Dispersed Servers
- learning more about, Learning More About Puppet Server
- overview of, Reviewing Puppet Servers
- planning for, Planning for Puppet Server-Functions Run on the Server
- preparing for, Preparing for a Puppet Server
- purpose of, Using a Puppet Server, Server
- using server data in manifests, Using Server Data in Your Manifests-Server Configuration Settings
- vs. Puppet Server service, Using a Puppet Server
- Puppet Style Guide, Hating on Params.pp
- Puppet types, Creating Puppet Types-Learning More About Puppet Types
- Puppet Types and Providers (Bode and Liu), Learning More About Puppet Types
- Puppet Users mailing lists, Accessing Community Support
- puppet-agent package, Reviewing Dependencies, Preventing Action
- puppet-strings module, Installing YARD and Puppet Strings
- Puppet.features.add() method, Identifying New Features
- puppet/util/feature library, Identifying New Features
- puppet:/// URI pattern, Sharing Files
- Puppetboard, Puppetboard
- PuppetConf, Is Puppet DevOps?
- PuppetDB, Querying PuppetDB, Embracing the Future with Puppet Server, Transmitting Node Reports to PuppetDB, Using Puppet Dashboard
- puppetfile check command, Listing Modules in the Puppetfile
- puppetlabs-strings command, Documenting Modules with Puppet Strings
- puppetlabs/stdlib module, Defining Variables
- puppetmaster VM, Starting the puppetmaster VM
- puppetserver VM, Starting the puppetserver VM, Enabling the Middleware
- purge attribute, Synchronizing Directories
- purge command, Listing Modules in the Puppetfile
R
- r10k
- random ordering option, Understanding Puppet Ordering
- range attribute, Limiting to a Schedule
- read-only attributes, Viewing Resources
- README.md template, Writing a Good README
- recertification , The Server Is Not the Node
- recurse attribute, Synchronizing Directories
- redeclaration, Redefining Variables
- redefinition, avoiding, Avoiding Redefinition
- reduce() function, reduce(), Iterating over values with EPP
- refresh events, triggering, Triggering Refresh Events, Chaining Resources with Arrows
- regular expressions
- Regular Expressions Pocket Reference (Stubblebine), Matching Regular Expressions
- relationship management
- assuming implicit dependencies, Assuming Implicit Dependencies
- avoiding the root user trap, Avoiding the Root User Trap
- chaining resources with arrows, Chaining Resources with Arrows
- debugging dependency cycles, Debugging Dependency Cycles
- managing dependencies, Managing Dependencies
- ordering resources, Ordering Resources
- overview of, Reviewing Resource Relationships
- processing resources with collectors, Processing with Collectors
- referring to resources, Referring to Resources
- triggering refresh events, Triggering Refresh Events
- understanding puppet ordering, Understanding Puppet Ordering
- utilizing stages, Utilizing Stages
- relative class names, Qualifying Relative Class Names
- release command, Automating Module Publishing
- removal (-) operator, Removing from Arrays and Hashes
- repeat attribute, Limiting to a Schedule
- replace attribute, Managing Files
- report processor, installing, Installing the Tagmail Report Processor, Emailing Node Reports
- reportdir configuration parameter, Storing Node Reports
- require metaparameter, Ordering Resources
- reserved names, Avoiding Reserved Names
- reserved words, avoiding, Avoiding Reserved Words
- resolutions, Ordering by precedence
- Resource Abstraction Layer (RAL), Manipulating Puppet Resource Types
- resource processing
- adding aliases, Adding Aliases
- adding an alias metaparameter, Adding an Alias Metaparameter
- auditing changes, Auditing Changes
- avoiding dependency failures, Avoiding Dependency Failures
- declaring resource defaults, Declaring Resource Defaults
- defining log level, Defining Log Level
- filtering with tags, Filtering with Tags
- limiting to a schedule, Limiting to a Schedule
- overview of, Reviewing Resource Processing
- preventing action, Preventing Action
- skipping tags, Skipping Tags
- specifying an alias by title, Specifying an Alias by Title
- utilizing periodmatch, Utilizing periodmatch
- resources
- affecting multiple simultaneously, Processing with Collectors
- built-in, Implementing Resources, Learning More About Puppet Manifests
- chaining with arrows, Chaining Resources with Arrows
- creating custom, Implementing Resources
- creating new types, Creating New Resource Types
- declaring, Declaring Resources
- declaring class resources, Declaring Class Resources
- declaring multiple bodies, Declaring Multiple Resource Bodies
- declaring multiple titles, Declaring Multiple Resource Titles
- default bleed, Avoiding Resource Default Bleed
- defaults scope, Tracking Resource Defaults Scope
- defined, Implementing Resources
- escrow refresh, Solving Unknown Resource Dependencies
- manipulating with MCollective, Manipulating Puppet Resource Types
- naming, Referring to Resources
- ordering, Ordering Resources
- ordering unrelated, Understanding Puppet Ordering
- referring to, Referring to Resources
- relationship overview, Reviewing Resource Relationships
- staging, Utilizing Stages
- using variables in, Using Variables in Resources
- viewing, Viewing Resources
- restore command, Testing File Synchronization
- reusable code blocks, Separating Data from Code
- reusable modules, Creating Reusable Modules
- reverse_each() function, reverse_each()
- Rhett, Jo, Learning More About MCollective, Contacting the Author
- right-to-left relationships, Chaining Resources with Arrows
- role-based access control (RBAC), Controlling Access
- root access, Viewing Resources, Avoiding the Root User Trap
- RSpec unit tests
- adding Agent classes, Adding an Agent Class
- defining main classes, Defining the Main Class
- defining parent class parameters, Defining Parent Class Parameters
- failing invalid parameters, Failing Invalid Parameters
- guidelines for, Defining RSpec Unit Tests
- passing valid parameters, Passing Valid Parameters
- testing file creation, Testing File Creation
- testing functions, Testing Functions
- testing other types, Testing Other Types
- using facts in tests, Using Facts in Tests
- using Hiera input, Using Hiera Input
- validating class inclusion, Validating Class Inclusion
- rsyslog module, Depending on Entire Classes
- Ruby
- Ruby core Regexp class, Comparing Strings with Regular Expressions
- Ruby custom facts, Custom (Ruby) Facts-Aggregating results
- Ruby DSL, Junking the Ruby DSL
- Ruby ERB templates, Parsing Templates-Learning more about ERB, Defining Ad Hoc Configuration Parameters
- Ruby functions, Ruby Functions-Learning more about functions
- Ruby gems, Adding Ruby Gems
- Ruby lambdas, Building Lambda Blocks
- Ruby regular expressions, Matching Regular Expressions
- rules, breaking, Breaking the Rules
S
- SafariĀ® Books Online, SafariĀ® Books Online
- schedule metaparameter, Limiting to a Schedule
- scope (variable), Understanding Variable Scope-Redefining Variables
- scope.call_function(), Accessing Puppet variables with ERB
- scope.lookupvar() function, Accessing Puppet variables with ERB
- search() function, Losing the Search Function
- security
- selector expression, Testing Values
- selectors, Evaluating Conditional Expressions
- server facts, Server Facts
- server_facts hash, Server Facts
- setcode block , Avoiding delay
- setter method, Adjusting Properties
- single quotes, Executing Programs, Using Variables in Strings, Preventing Interpolation, Using Variables in Resources
- SLAX scripts, Distributing Junos Event Scripts
- slice() function, slice()
- source attribute, Sharing Files
- source tag, Promoting the Project
- space (\s), Using Variables in Strings
- SPDX License List, Identifying the License
- special characters, Using Unicode Characters
- splat operator (*) operator, Creating Arrays and Hashes, Defining Attributes with a Hash, Evaluating Conditional Expressions, Capturing Extra Parameters
- splay feature, Splaying Puppet Agent Cron Jobs
- sprintf() function, Iterating over values with EPP
- square brackets, Using Variables in Resources
- SSL renamed to TLS, SSL is now TLS
- (see also TLS certificates)
- staging, Utilizing Stages
- standard input (STDIN), Policy-Based Autosigning
- stdlib library, Removing from Arrays and Hashes
- step() function, step()
- strict_variables configuration setting, Using Variables in Resources
- stringify_facts, Testing with the Future Parser
- strings
- Stubblebine, Tony, Matching Regular Expressions
- subclasses, building, Building Subclasses
- subscribe metaparameter, Triggering Refresh Events
- sudo
- support resources, Finding Support Resources
- symlinks , Defining Fixtures
- system facts, finding, Finding Facts
- system-level paths, Running Puppet Without sudo
T
- tab (\t), Using Variables in Strings
- tabbed sessions, Starting a Bash Shell
- tagmail Puppet report processor, Installing the Tagmail Report Processor, Emailing Node Reports
- tags, filtering with, Filtering with Tags, Skipping Tags
- template parsing
- 10+ Deploys Per Day: Dev and Ops Cooperation (Allspaw), Is Puppet DevOps?
- test environments
- text editors
- TextMate editor, On Your Desktop
- TextWrangler editor, On Your Desktop
- timeout property , Avoiding delay
- tips and tricks
- breaking the rules, Breaking the Rules
- disabling environments, Disabling Environments
- error logging vs. failures, Choosing Fight or Flight
- event management systems, Letting the Strings Pull You
- imperative programming, Tossing Declarative to the Wind
- leveraging Puppet for small changes, Leveraging Puppet for Small Changes
- params.pp class, Hating on Params.pp
- sudo, Allowing Anyone to sudo puppet
- tracking providers, Tracking Providers
- working good, fast, cheap, Working Good, Fast, Cheap
- title parameter, Creating New Resource Types
- TLS certificates
- top-scope variables, Understanding Top Scope
- trusted facts, Finding Facts, Trusted Facts
- trusted hash, Finding Facts, Trusted Facts
- type attribute, Testing Yourself
- typographical conventions, Conventions Used in This Book
U
- Ubuntu, Debian and Ubuntu
- Uncomplicated Firewall (UFW), Uncomplicated Firewall
- undef variables, Defining Variables, Using Variables in Resources
- underscores, Defining Variables, Sourcing a Common Dependency
- Unicode characters, Using Unicode Characters
- unit tests, guidelines for (see RSpec unit tests)
- Unix, installing Puppet on, Linux and Unix
- unless statements, Evaluating Conditional Expressions, Adding else to unless
- unless/else statements, Evaluating Conditional Expressions
- UTF-16 Unicode numbers, Using Unicode Characters
V
- Vagrant
- benefits of, Creating a Learning Environment
- Community Support, Initializing the Vagrant Setup
- debugging, Initializing the Vagrant Setup
- initializing, Initializing the Vagrant Setup
- installing, Installing Vagrant
- installing Git tools on Windows, Installing Git Tools on Windows
- installing on Macs, Installing Vagrant on Mac
- installing on Windows, Installing VirtualBox on Windows-Installing Vagrant on Windows
- suspending/resuming instances, Initializing the Vagrant Setup
- verifying /vagrant filesystem, Verifying the /vagrant Filesystem
- Vagrant: Up and Running (Hashimoto), Initializing the Vagrant Setup
- validate method, Validating Input Values
- values, mapping, Mapping Hash Keys and Values
- variables
- additional resources, Learning More
- assigning values to, Defining Variables
- avoiding redefinition, Avoiding Redefinition
- avoiding reserved words, Avoiding Reserved Words
- creating Arrays and hashes, Creating Arrays and Hashes
- defined, Defining Variables
- defining numbers, Defining Numbers
- delineating boundaries, Using Braces to Limit Problems
- displaying type of, Defining Variables
- documenting, Documenting Variable References
- Hiera lookup, Puppet variable and function lookup
- mapping hash keys and values, Mapping Hash Keys and Values
- naming, Defining Variables
- out-of-scope, Using Out-of-Scope Variables
- preventing interpolation, Preventing Interpolation
- redacting sensitive values, Redacting Sensitive Values
- redefining, Redefining Variables
- standalone, Using Variables in Resources
- undefined, Defining Variables, Using Variables in Resources
- using in resources, Using Variables in Resources
- using in strings, Using Variables in Strings
- using Unicode characters, Using Unicode Characters
- validating variable names, Validating Variable Names
- variable scope, Understanding Variable Scope-Redefining Variables
- vbguest plugin, Install the Vagrant vbguest Plugin, Verifying the /vagrant Filesystem
- Velocity conference, Is Puppet DevOps?
- Vim text editor, On the Virtual System
- VirtualBox
- virtualization drivers, Installing VirtualBox on Windows
- virtualized environments (see learning environments)
- VLAN configuration, Centralizing VLAN Configuration, Simplifying Layer-2 VLANs
- VT-x virtualization, Initializing the Vagrant Setup
W
- WebGraphviz, Debugging Dependency Cycles
- WEBrick application server, Upgrading Easily with Puppet Master, Running the WEBrick Server
- weekday attribute, Limiting to a Schedule
- whitelists, Restricting which resources can be controlled
- Windows
- benefits of Puppet on, Running the Puppet Agent on Windows, Concluding Thoughts on Puppet Windows
- binary packages for, Other Platforms
- configuring Puppet on, Configuring Puppet on Windows
- connecting Windows installation media, Connecting the Windows Installation Media
- creating a Windows virtual machine, Creating a Windows Virtual Machine
- debugging Puppet problems on, Debugging Puppet Problems
- finding Windows-specific modules, Finding Windows-Specific Modules
- installing Git tools on, Installing Git Tools on Windows
- installing Puppet on, Windows, Installing Puppet on Windows
- installing Vagrant on, Installing VirtualBox on Windows-Installing Vagrant on Windows, Initializing the Vagrant Setup
- running Puppet interactively on, Running Puppet Interactively
- starting Bash shells on, Starting a Bash Shell
- starting the Puppet service on, Starting the Puppet Service
- text editor selection, On Your Desktop
- writing manifests for, Writing Manifests for Windows
- with() function, with(), Testing Values
- Word, On Your Desktop
- WorkPad editor, On Your Desktop