Foreman – Hinzufügen und Konfigurieren des NTP-Moduls unter Ubuntu Linux

In unserem Tutorial Installiere und konfiguriere Foreman unter Ubuntu kannst du unsere Anleitung finden, wie du Foreman installieren und einrichten kannst. Bei Foreman greifst du auf ein Tool zurück, mit dem du bequem deine komplette Server-Infrastruktur handhaben und organisieren kannst. In diesem Tutorial gehe ich anhand der Konfiguration eines NTP-Services exemplarisch durch die Verwendung von Foreman durch. Du kannst dieses Beispiel anschließend auf beliebige Programme, Skripte oder Konfigurationsdateien übertragen. Falls du noch kein Foreman auf deinem System installiert hast, schau dir vorher das oben verlinkte Tutorial an.

NTP-Modul, Puppet-Server und die Foreman-Tools

Im oben referenzierten Tutorial erwähne ich Puppet als eine Komponente von Foreman. Puppet besteht aus einem zentralen Server. Dieser Server besteht zum einen aus dem Puppet-Master und des Weiteren aus den Clients, welche als Nodes, bzw. Knoten des Puppet-Master verstanden werden. Du kannst dir das Fungieren zwischen dem Puppet-Master und den Puppet-Knoten so vorstellen, dass sich die Knoten beim Master anmelden und dort nach der aktuellen Konfiguration fragen. Der Master gibt die Konfigurationsinformationen an die Nodes weiter.
Mit Hilfe des Puppet-Servers kann eine Reihe von Tasks erledigt werden, wie z. B. die Übergabe von Dateien, die an bestimmte Orte kopiert werden. Im Zuge dessen kann ein Knoten angewiesen werden, Dateirechte zu prüfen und diese bei Bedarf zu korrigieren. Je nach Betriebssystem kann erzwungen werden, dass ein Knoten prüft, ob bestimmte Dienste aktiv sind, oder ob bestimmte Pakete auch in der neuesten Version installiert sind. Der Puppet-Server kann einen Knoten anweisen, bestimmte Befehle auszuführen. Puppet benötigt für die Ausführung der oben beschriebenen Beispielaufgaben eine genaue Zeitplanung. Hier kommt das NTP-Modul ins Spiel, das die Zeitsynchronisierung in Netzwerken ermöglicht.

Installation des NTP-Moduls

Im Folgenden installierst du das NTP-Modul: Das NTP-Modul ist eine der wichtigsten Anforderungen von Puppet zur Verwaltung der NTP-Dienste.

/opt/puppetlabs/bin/puppet module install puppetlabs-ntp -i /etc/puppetlabs/code/modules/ 

Der Output sollte ähnlich zu dem Bild links aussehen. Eventuell weichen jedoch die Versionen voneinander ab, was nicht weiter wichtig ist für die nächsten Schritte.

Navigiere dich in der Foreman-Webkonsole zum Klassen-Menüpunkt des Konfigurieren-Hauptmenüpunktes, um die nach der Installation des NTP-Moduls verfügbaren Puppet-Klassen aus dem Puppet-Master zu lesen und die Foreman-Datenbank zu füllen.

Auf der Seite, auf die du daraufhin weitergeleitet wirst, kannst du über den oben rechts befindliche Button zum Import der Umgebung deines FQDN das NPT-Modul importieren.

Wähle das NTP-Modul für die development- und production-Umgebung und klicke auf die Schaltfläche Aktualisierung.

Nun kannst du das NTP-Modul und Foreman über das Dashboard verwalten.

Konfiguration des Foreman NTP-Moduls

Nachdem du das NTP-Modul importiert hast, suchst du in der Liste der verfügbaren Puppet-Klassen nach der NTP-Klasse. Dort führst du im Dropdown der Aktionen-Spalte dieser Klasse die Auswahl “Alle Parameter überschreiben” aus, wie im Screenshot unten vorgeführt. Damit setzt du durch, dass Foreman die Parameter der NTP-Klasse des Puppet Servers managen kann.

Danach begibst du dich im Menü zurück zu Hosts > Alle Hosts und wechselst für den betreffenden Host in der Aktionen-Spalte via dem Bearbeiten-Button in den Bearbeiten-Modus.

Erweitere im Tab Puppet-Klassen das NTP-Modul, indem du auf das +-Symbol klickst. Damit fügst du die NTP-Klasse zum Host hinzu. Bestätige diesen Vorgang im Anschluss mit dem Absenden-Button.

Nach der Zuordnung der NTP-Klasse zum betreffenden Host, wirst du automatisch in den Detailbereich dieses Hosts umgeleitet, wie im Screenshot zu erkennen.

Wenn du dort auf die YAML-Schaltfläche klickst, werden dir die NTP-Klasse und die Liste der dazugehörigen Parameter angezeigt, die an Puppet über die ENC-Schnittstelle (External Node Classifier) übergeben werden. Der Screenshot unten demonstriert dir, wie diese Auflistung beschaffen ist.

Führe schließlich via dem Terminal deines Ubuntu-Servers den folgenden Befehl auf dem Foreman-Host aus, um den NTP-Dienst anzuzeigen, der automatisch von Puppet und dem NTP-Modul neu konfiguriert wurde.

puppet agent --test

Um zu prüfen, ob das NTP-Modul installiert, neu gestartet und konfiguriert wurde, klickst du im Detailbereich des betreffenden Hosts auf die Reports-Schaltfläche, die sich neben der YAML-Schaltfläche befindet. Dort hast du eine Auflistung der bisher erstellten Berichte zur Verfügung. Je nachdem, wie lange die Installation von Foreman und der Implementierung des NTP-Moduls zwischen einander zurückliegt, kann diese Listung folgend auf den letzten erstellten Report bereits eine Reihe von zeitlich zurückliegenden Items enthalten.

Klickst du auf einen Bericht, der vor der Implementierung des NTP-Moduls und dessen nachfolgende Zuordnung zum betreffenden Host via der oben gezeigten Konfiguration des NTP-Moduls generiert wurde, dann kann der Report einem Report ähneln, wie du ihn aus dem Screenshot unten entnimmst.

Der Report, welcher nach der Konfiguration des NTP-Moduls erzeugt wurde, sollte dann einem Bericht gleichen, wie ihn dir der folgende Screenshot reflektiert. In diesem Fall ist der Puppet-Master fähig, Agenten oder Knoten zu akzeptieren.

Fazit

Wenn du hier angekommen bist, hast du mit Hilfe deines Puppet Servers und deiner Foreman-Installation erfolgreich NTP auf deiner Serverfarm ausgerollt und eingerichtet. Die Erkenntnisse kannst du ganz einfach auf beliebige andere Module übertragen. Probier dich am besten einfach aus. Wenn du Spaß daran hast deine Infrastruktur so zu verwalten, dann kannst du dir auch das von gridscale veröffentlichte Plugin für Foreman anschauen. Mit diesem Plugin kannst du direkt auf die von gridscale angebotenen Server-Templates zugreifen und deine Infrastruktur bei gridscale verwalten.