Puppet: Klassen in der Nodekonfiguration aus Hiera einbinden

Nachdem Hiera installiert ist moechte ich aufschreiben, wie man in der site.pp Klassen in der Nodekonfiguration aus Hiera einbindet. Dieser Blogeintrag baut inhaltlich auf der Struktur auf, die ich unter Puppet: Hiera und Puppet – Installation, Einrichten, Moduleinbindung beschrieben habe.

Im ersten Schritt werden die Klassen fuer den default Node extrahiert. Der Eintrag in meiner site.pp sieht vorher wie folgt aus:

node default {
  class { 'foo': }
  class { 'bar': }
  class { 'baz::moo': }
  include users::mmuster
}

Die Klassen werden dann in der folgenden Syntax in die common.yaml uebertragen:

---
classes:
  - foo
  - bar
  - baz:moo

Danach kann die Nodedefinition in der site.pp wie reduziert werden. Wichtig ist den abschliessenden whitespace nach dem Komma zu beruecksichtigen:

node default {
  hiera_include('classes','')
  include users::mmuster
}

Das ganze ist auch in der offiziellen Puppet Dokumentation beschrieben unter „Assigning Classes to Nodes With Hiera (hiera_include)„.