How do doll components work with each other?
I am using open source Puppet.
I found that Puppet 3.7.5 has several components:
- puppet master
- puppet agent
- MCollective
- Hiera
- PuppetDB
But I don't know how they cooperate with each other. I have seen a simple architecture that only includes a puppet master and a puppet agent.
As for the other components, I don't know how they interact. Can anyone give me details on how they interact or some kind of data flow graph?
source to share
Full Disclosure I work for PuppetLabs!
Basic breakdown of figures:
- puppet agent
The Puppet agent on each node sends facts about the node configuration - a detailed description of the hardware, operating system, package versions and other information - to the Puppet master. Basically this will start by starting Puppet every n
minutes (default 30) and then reporting the changes to the master.
- puppet master
The Puppet Master uses the facts provided by the agents to compile the details of how each node should be configured - called a directory - and sends it back to the Puppet agent.
- MCollective
MCollective is a Puppet orchestration tool primarily used to programmatically perform actions on server clusters. Think Fabric, Capistrano, etc., but much higher level. More details here
- Hiera
Hiera is a hierarchical key / value store for Puppet. This allows you to resolve separation of concerns by storing data in Hiera and code in a puppet. More details here
- PuppetDB
PuppetDB is a data store that caches data generated by Puppet and allows you to consume that data using an API.
Here's a diagram of how they all fit together in the Enterprise Edition:
OSS will not have a console, but most of it applies to the OSS release as well. More details here .
For further questions, there are tons of documentation , IRC numbers, and study materials .
source to share