Hier bloggt die knowlitge GmbH über neues und wissenswertes zu IT Themen. Die knowlitge GmbH früher DV-Lösungen GmbH bietet seit 1994 erfolgreich Lösungen in den Bereichen Beratung, Entwicklung, Schulung und Support an. Unternehmen, Verbände und öffentliche Auftraggeber nutzen das Know-How des IT-System- und Beratungshauses mit Standorten in Bonn / Sankt Augustin / Berlin und der Schweiz.
Dank des “DevOps” Hypes erlangen Automatisierungstools wie Puppet eine immer größere Verbreitung. Deshalb schauen wir uns doch mal an wie wir Puppet dazu verwenden können auf einfache Weise sowohl das Zabbix Repository als auch den aktuellen Zabbix Agent auf einem Debiansystem zu installieren, zu konfigurieren und zu starten.
Dazu werden wir einfach ein kleines Puppet Modul erstellen was die gewünschten Aufgaben durchführt.
Schritt 1: Die nötigen Verzeichnisse anlegen.
Als erstes müssen wir die Verzeichnissstruktur des Puppet Moduls anlegen. Als Namen verwenden wir hier einfach “zabbix-agent”.
Schritt 2: Das Manifest anlegen.
Dazu legen wir die Datei zabbix-agent/manifests/init.pp mit folgendem Inhalt an:
Folgend möchte ich noch kurz die einzelnen Komponenten des Manifests erläutern. Im ersten Block definieren wir die zu übergebenen Parameter und setzen unsere default Werte so dass wir auch mit leeren Parametern eine funktionierende Konfiguration erhalten.
In dem Block package {“zabbix-release”} wird das offizielle Zabbix Repository durch das entsprechende .deb Paket installiert. Dadurch sind wir nicht auf die möglicherweise veralteten Pakete aus den Debianquellen beschränkt. Der nächste package Block installiert nun den Zabbix Agent.
Als nächstes legen wir uns noch unsere Konfiguration an. Dazu verwenden wir ein einfaches Ruby Template welches wir natürlich nach belieben anpassen und erweitern können. Dazu erstellen wir die Datei zabbix-agent/templates/zabbix_agentd.conf.erb mit diesem Inhalt:
Am Ende wird über den service Block der Agent gestartet und im entsprechenden Runlevel eingetragen.
Schritt 3: Das Modul verwenden.
Unser Modul ist nun fertig und kann verwendet werden. Falls wir Puppet wie üblich als Client/Server Setup verwenden kopieren wir unser Modul auf den Puppetmaster und können dieses in unseren Nodes einbinden:
Wenn wir keinen Puppet Server verwenden können wir unser Modul auch direkt auf einem Host starten. Dazu kopieren wir das Modul in ein beliebiges Verzeichniss auf dem Host. Beispielsweise nach /tmp und führen dieses dann mit folgender Befehlszeile aus:
puppet apply –modulepath=/tmp -e ‚class {„zabbix-agent“: servers => „123.123.123.123“, hostname => $hostname}‘
Wir sollten nun eine Ausgabe ähnlich der folgenden zu sehen bekommen:
Und fertig. Das Modul lässt sich natürlich noch nach Belieben erweitern um zum Beispiel noch UserParameter zu verteilen.