Hi,
What you'll need is some way to classify nodes, I do this through Hiera.
Per node I have a yaml file named after the host: hostname.yaml with the following:
---
roles:
- '::role::somerole'
In manifests/site.pp I only define one node, the default:
node default {
hiera_include('roles', [])
}
Now when hostname checks in it will hit node default and a hiera lookup will be done for an array named 'roles', which I just defined in the yaml file. If it's found those roles, which are actually a puppet module, are included on the host/in the catalog and get applied. If not we return an empty array so nothing happens, you can also chose not to provide a default in which case it will error.
As for how to organise roles and profile in Puppet, Craig Dunn has a very nice post that should get you started:
--
Daniele Sluijters