Parametrisierte Klassen mit Foreman

Wenn in den Einstellungen Parametrized_Classes_in_ENC für Puppet auf true gesetzt ist, unterstützt Foreman parametrisierte Klassen. Weitere Grundvoraussetzung ist außerdem das Foreman einen Puppetmaster als Smart Proxy angebunden hat und auf dessen Puppetmodule zugreifen kann.
Somit können die Puppet Klassen vom Puppetmaster importiert werden:
Bildschirmfoto vom 2014-04-28 07:23:03
Innerhalb einer Klasse kann Foreman sich bei den Parametern dann über die Klassenvorgabe hinwegsetzen (= “Override”). Wie im folgenden Beispiel anhand der Klasse ntp mit dem Parameter servers gezeigt, empfiehlt es sich entsprechende Standardvorgaben zu setzen:
Bildschirmfoto vom 2014-04-28 07:38:03
Ergänzend dazu können für einzelne Hosts über FQDN, Hostgruppe oder anderen Kriterien abweichende Werte festgelegt werden. Foreman bietet dazu an verschiedenen Stellen des Webinterfaces Möglichkeiten dies zu tun.
Bildschirmfoto vom 2014-04-28 07:45:41
Nebenan ein exemplarisches Beispiel für geänderte NTP-Server innerhalb der Puppet Klasse.
Hier werden für die Hostgruppen CentOS und Debian abweichende Werte hinterlegt. Bei Systemen die keine Zuordnung zu den beiden Hostgruppen haben, greift die zuvor gesetzte Standardvorgabe.
Wichtig ist zudem das die jeweilige Puppet Klasse den entsprechenden Hosts auch zugewiesen wird. Auch dies kann bei Foreman an verschiedenen Stellen, z.B. direkt im Host oder der Hostgruppe, erfolgen.
Mit parametrisierten Klassen über Foreman ist es somit möglich individuelle Konfigurationen unabhängig von site.pp & Co. zu definieren und diese an zentraler Stelle übersichtlich zu verwalten.

Markus Waldmüller
Markus Waldmüller
Lead Senior Consultant

Markus war bereits mehrere Jahre als Sysadmin in Neumarkt i.d.OPf. und Regensburg tätig. Nach Technikerschule und Selbständigkeit ist er nun Anfang 2013 bei NETWAYS als Lead Senior Consultant gelandet. Wenn er nicht gerade die Welt bereist, ist der sportbegeisterte Neumarkter mit an Sicherheit grenzender Wahrscheinlichkeit auf dem Mountainbike oder am Baggersee zu finden.