Resource
|
A resource describes some aspect of the system,
like a specific file, a service or a package.
|
Resource declaration
|
A specification of the desired state of the resource.
Also tells Puppet to add it to the catalog.
|
Resource Abstraction Layer (RAL)
|
Components of Puppet that interact with the system.
This is where the abstract syntax of Puppet is being translated to system specific commands.
|
Resource Types
|
Every Resource has a Type that determines the kind of configuration it manages.
This way simular Resources are grouped into Resource Types.
Example: file hello.txt is of Resource Type files.
|
Resource Query
|
Determine the state of a specific resource via the RAL.
|
Provider
|
Providers are the fulfillment of a resource.
Providers can differ per platform. (RedHat, Debian, OSX, Windows)
Example: A Resource Type like package has providers yum for RedHat and apt for Debian.
|
Node
|
A server that is being maintained by a Puppet Master.
|
Node Group
|
Nodes that have common characteristics can be grouped into Node Groups.
You can create a hierarchy of Node Groups.
|
Catalog
|
The catalog is the specification how the node should behave.
Puppet compiles manifests into a catalog.
|
Report
|
An API that can send data to Puppet or to other tools.
|
Fact
|
Information from the node about its state.
|
Facter
|
Tool that collects information (facts) about the node.
|
Agent
|
Sends facts to the Master
|
Master
|
Sends a catalog to the agent with specifications how the nodes should behave.
|
Abstraction
|
Resources in Puppet are abstracted from underlying providers
|
Declarative Modeling Language (DSL)
|
Domain Specific Language.
Model the desired state and let Puppet figure out how to enforce it.
The Ruby DSL was deprecated in Puppet 3x, and is removed in Puppet 4.0.0.
Starting in Puppet 2.6.x, manifests can be written in Ruby.
|
Manifest
|
Manifests are files containing Puppet code.
They are standard text files saved with the .pp extension.
Most manifests should be arranged into modules.
|
Template
|
Templates are documents that combine code, data, and literal text to produce a final rendered output.
The goal of a template is to manage a complicated piece of text with simple inputs.
|
Module
|
A directory that contains Puppet configurations.
|
Class
|
Definition of a collection of resources that are managed together as a single unit.
Example: package openssh, file /etc/ssh/sshd_config, and service sshd.
|
Namespace
|
Class names that map directly to where Puppet expects to find them.
Puppet expects to find classes in the manifests directory of your module.
|
Define
|
Specify contents and behavior of a class. make a class available to be declared
|
Declare
|
Direct Puppet to include or instantiate a given class.
|
Apply
|
When using puppet apply local facts are used to build the catalog.
The catalog is send to the node agent, and the desired state is imposed on the node.
|
Noop mode
|
Simulation without enforcing.
|
Convergence
|
The process where Puppet maintains the desired state of a node.
|
Attribute
|
Describes the state that Puppet should converge the resource to.
Example: resource is JimJones, attribute is present.
|
Drift
|
Configuration drift is when a server deviates more and more over time from the desired state.
|