As a new user to both The Foreman and Puppet, I am having a hard time
understanding how they interact and compliment each other. I'd like to
understand what each product does on its own, so I can better understand
how they work together. I'd appreciate anyone who could answer any of
these questions.
-
Most puppet tutorials talk about site.pp and node.pp and demonstrate
adding nodes to these files. Nodes.pp doesn't exist and site.pp is empty
on my system. I see if I click on a clients yaml button, it shows the
classes that will be applied. Where on the puppet server or client is this
information stored? Or does Foreman store it? How would I create this
information on Puppet without Foreman? -
Most puppet tutorials show a few clients as an example and load all of
those clients onto the node.pp or site.pp file. I see in Foreman you can
create Hosts, and Config Groups. Are these a part of Puppet or unique to
Foreman? If I use these features and remove Foreman, will my clients still
work, or will they not know what classes to run? If I choose not to use
Foreman for Puppet management, and have an environment with a 1000 servers,
do they all have to be in the site.pp or node.pp file individually? Can
someone provide an example of a large site.pp file or explain how it is
typically done? -
Most puppet tutorials talk about applying modules, but The Foreman
imports classes. I believe a module contains many classes, so it may not
make a difference if you import the right class, but I found a module on
puppetforge that had no classes so it didn't import. Is that a bad module
or is there a case where a classless modules make sense? -
It appears a config group is a way to combine a bunch of classes
together so they can be applied to a single machine or group of machines.
When I first heard the term, I thought it was a way of configuring
programs with different behaviors. In other words, I could have an
application deploy with different settings based on their config group. If
I want to deploy an application with different settings to different
machines, how would I do this?
Thanks in advance for any answers.