Weekly Snap: InGraph, Google Analytics for Prestashop, LDAP & Distributed Shell

weekly snap26 – 30 November ended the month with mini guides on Distributed Shell and LDAP, Google Analytics and Prestashop, alongside some familiar hardware, InGraph and news from Down Under.
Eric gave a sneak preview to features planned for coming releases of InGraph, concluding The Ultimate Guide to InGraph.
Stefan fiddled with batch mode clusters via ssh using Distributed Shell dsh, while Lennart showed how to use LDAP filters for authorisation settings in recursive groups.
Georg then showed how to make the most of Google Analytics in Prestashop and introduced one of his best sellers, the HWg-STE network thermometer.
On sabbatical, Birger got settled into Sydney and reflected on a successful Movember 2012 as Bernd shared his thoughts on Africa’s internet landscape.

Batch Mode Cluster ssh mit der Distributed Shell dsh

muscheln
Auch in Zeiten von Puppet und Mcollective braucht man manchmal einfach auf die Schnelle die Möglichkeit, sich per ssh aus einem Server-Cluster bestimmte Informationen holen zu können, oder einfache Befehle ausführen zu können.
Hier bietet sich die oftmals in Vergessenheit geratene Distributed Shell dsh an, die sich für alle gängigen Distributionen einfach per Paketmanagement installieren lässt.
Ein getaggter Puppet Lauf über bestimmte Servertypen, z.B. um nur bestimmte Klassen auszuführen, ist nur eine Anwendung bei der sich die Distributed Shell geradezu aufdrängt.
Das ist eigentlich kein Problem, wenn man die Möglichkeit hat sich die entsprechenden Serverlisten entweder anhand der Namen aus dem DNS, der Icinga Konfiguration, oder auch nur anhand eines bestimmten abgetrennten Subnetzes für die Servertypen, zu generieren.
Nun hatte ich neulich den Fall, dass keiner der o.g. Punkte möglich war, und zusätzlich erschwerend nur ein einziges grosses Netz vorhanden war, in dem sich so ziemlich alle Geräte, inklusive Switches etc. befunden haben.
Man möchte ja, dass der ssh Lauf ohne manuellen Eingriff durchläuft und man nicht jedesmal abbrechen/bestätigen muss, wenn gerade ein Gerät in der Schleife erreicht wird, das eigentlich nicht abgefragt werden soll.
Unter der Voraussetzung, dass alle “normalen” Server per PublicKey Authentifizierung erreichbar sind (was ja z.B. beim Icinga Monitoring Benutzer i.d.R. der Fall ist) hat sich dabei folgende Befehlszeile bewährt (als einfaches Beispiel z.B. um sich den Distributions Namen ausgeben zu lassen):


dsh -M -o-oBatchMode=yes -o-oStrictHostKeyChecking=no -o-oConnectTimeout=3 \
-f ./serverliste.txt 'lsb_release -c' | \
tee /tmp/debian_version.txt

Gerade die Option BatchMode=yes ist hier alles andere als intuitiv, sorgt aber dafür, dass alle Server in der Liste, die für den Benutzer nicht per Key Authentifizierung erreichbar sind, sofort übersprungen werden.
Wenn man möchte, kann man zusätzlich noch die Option -F angeben, um den Befehl parallel auf der angegebenen Anzahl an Servern ausführen zu lassen.

Stefan Gundel
Stefan Gundel
Senior Systems Engineer

Stefan ist ein Urgestein bei NETWAYS und arbeitet im Managed Services Team. Der internationale Durchbruch gelang Stefan als Fotomodel für den K+K Warenkorb. Nachdem er einige Jahre exklusiv für unseren Kunden StayFriends gearbeitet hat, darf er nun endlich auch wieder in anderen Projekten mitarbeiten.