In Puppet, what is the difference between 'include' and 'class'?
I can either write
include '::ntp'
or I can write
class { '::ntp':}
What is the difference between them, or do I need both?
There are differences, here are two big ones:
Using include
allows multiple declarations of a class. The class
declaration can only be used once or you'll see a duplicate resource declaration error.
include
will use external data, e.g. hiera, for parameters. Declaring class
allows you to specify the parameters.
See https://puppet.com/docs/puppet/latest/lang_classes.html#the-include-function