We have outlined the main tasks and components we can use to put things together in a Puppet architecture; we have looked at Foreman, Hiera, and 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 a 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 basically need; no modules with their classes, no Hiera, no ENC. We just need 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...