Puppet default node definition

Solution 1:

The default node's definition and the classes in it will only apply if the node doesn't match any other node definition.

Take a look at node inheritance to be able to apply a class to all nodes without copying it to all of them.

Better yet, take a look a using Hiera to declare your nodes, which is the way I'd recommend doing it - Hiera adds a lot of flexibility and doesn't suffer from some of the problems of node declaration and inheritance in manifests (most notably, overriding global settings at the node and integrating class parameters from multiple different inheritance levels).