We have outlined the main tasks and components we can use to put things together in a Puppet architecture; we have given a look at Foreman, Hiera, and at the roles and profiles pattern; now let's see some real examples based on them.
By default, Puppet doesn't use an ENC and lets us classify nodes directly in /etc/puppet/manifests/site.pp
(or in files imported from there) with the node
statement. So a very basic setup would have site.pp
with content like the following:
node www01 { # Place here resources to apply to this node in Puppet DSL: # file, package service, mount... } node lb01 { # Resources for this node: file, package service... }
This is all we need: no modules with their classes, no Hiera, no ENC; just good old plain Puppet code as they teach us in schools, so to speak.
This basic approach, useful just for the first tests, obviously does not scale well and would quickly become a huge mess of duplicated code.
The next step is to use classes...