Sebastian Hempel bio photo

Sebastian Hempel

Software Crafter, Clean-Code-Developer, JEE Professional, Puppet-Master, OpenSource Fanboy, Alfisti

Email Twitter Google+ XING Instagram Github

Über die Manifest-Datei site.pp bzw. nodes.pp oder eine ENC (external nodes configuration) werden in Puppet Module und damit Anwendungen einem Knoten / Rechner zugeordnet. Welche Module zugeordnet werden, hängt von der Rolle / dem Einsatzzweck des Rechners ab. Je mehr Module zugeordnet werden umso länger wird auch ein Puppet-Lauf. Möchte man einen manuellen Puppet-Lauf durchführen, ist dabei aber nur an den Ergebnissen eines Moduls interessiert, kann man die Funktionalität der Tags in Puppet nutzen.

In Puppet können jeder Ressource (file, package, service, etc.) ein oder mehrere Tags zugeordnet werden. Bei der Ausführung des Puppet Clients kann mit der Option --tags ein Tag angegeben werden. Dadurch werden nur die Ressourcen angewendet, die auch mit dem auf der Kommandozeile angegebenen Tag versehen sind. Alle anderen Ressourcen werden so behandelt, als wären Sie dem Nodes nicht zugeordnet.

Puppet sorgt dafür, dass wir im Normalfall selbst keine Tags setzen müssen. Innerhalb eines Moduls / einer Klasse werden den darin definierten Ressourcen automatisch Tags zugeordnet. Jede Ressource einer Klasse erhält als Tag den Namen der Klasse.

Mit diesem Wissen ist es nur noch ein kleiner Schritt auf einem Client nur die Zuordnung eines Moduls durchzuführen. Möchte man z.B. auf dem Client Puppet ausführen und dort nur die Ressourcen des Moduls ntp “ausführen” lassen genügt folgender Aufruf.

puppet agent --test --tags ntp