Weekly Snap: Massif, Updian 0.4, Data Privacy & Icinga Logo Photos

9 – 13 July looked at data privacy, memory profiling, Updian and launched an Icinga logo photo contest.
100 days till OSMC 2012, Eva gave the stage to Reinhard Scheck and his presentation on “Cacti Graphing Solution”. She then moved on to kick off an Icinga logo competition, looking for the best photo of the icon out and about.
Following on, Gunnar shared his tip for heap memory profiling with Massif while Ronny reminded us of Updian’s v0.4 release featuring yum support.
Bernd ended the week pondering the inconsistencies of data privacy laws and habits in the social media sphere, upon learning that state data privacy bureaus were reviewing company Google Analytics accounts in Germany.

Updian 0.4

Wir haben ja schon oft über Updian berichet (hier und da). Und seit Ende Juni gibt es wieder etwas neues von RobHost. Zu dem bisherigen Inhalt gibt es an sich nur kleinere Bugfixes, welche nun auch im Github mit verfolgt werden können.
Aber eine der wohl großen Änderungen ist der anfängliche Support von ‘yum’ gestützten Systemen wie CentOS. Nun können also auch Administratoren solcher Systeme auf ein schlichtes und zentralen Update-Tool zugreifen.
Sind wir mal gespannt, was sich dann noch so in der Zukunft ergibt.

Weekly Snap: Update on Updian, SSO in Apache and Perl compilation with PAR::Packer

24 – 28 October looked at the latest version of Updian and shared tips for compiling Perl as well as SSO in Apache.
To begin, Ronny brought us up to scratch on Updian’s latest release. As previously introduced, Updian is a simple update engine for Debian. Compared to v0.2, the new v0.3 has a slicker interface, with sorted lists and generally clearer display of large lists and views. SSH connections can now be specified where the standard port 22 doesn’t apply, and different ports can be used on different servers. To top it off, users of ‘debian-goodies’ can try ’checkrestart’ for a colour-coded view of services for libs that need to be restarted.
Gunnar then introduced the handy PAR::Packer Perl module that compiles Perl scripts with their dependencies linked into a single binary. Platform independent, he showed how to install PAR::Packer on Windows with the help of CPAN and Strawberry Perl. For more info, he recommended http://search.cpan.org/dist/PAR/lib/PAR/Tutorial.pod
Last but not least, Lennart showed how to use ‘single sign on’ (SSO) in Apache with group-specific authentication in an Active Directory environment. Put otherwise, he set out to authenticate a web server via Kerberos ticket and check downstream, whether a user is in a group whose members may access a website. He began by creating a user in Active Directory, and generating a key on the domain controller to which the user is given a principal name. Then he copied the apache2.keytab file to the web server and used kinit to check the apache2.keytab for accuracy, and klist to determine the principal name in advance. Finally, he loaded mod_ldap, mod_authnz_ldap and mod_auth_kerb and configured the browser for SSO access.

Neuigkeiten bei Updian

UpdianHeute halten wir uns recht bescheiden und folgen dem Motto “Weniger ist mehr”. Damit möchten wir auf die letzten Neuerungen in dem schon vorgestellten Updian eingehen, welche die Nutzung wieder etwas erleichtern.
Im Vergleich zur Version 0.2 hat die neue 0.3 auf den ersten Blick ein überarbeitetes Design, was das ganze Interface etwas ‘moderner’ aussehen lässt und größere Listen und Anzeigen klar darstellt. Zusätzlich werden die Listen bei der Anzeige auch sortiert.
Des weiteren gibt es nun die Möglichkeit bei der Eintragung der Server auch einen gesonderten Port für die SSH-Verbindung anzugeben, wenn dieser vom Standard-Port 22 abweicht. Man muss also nicht mehr unnötige den Code anpassen, wenn dies bisher in Verwendung war und kann dazu auch verschieden Ports auf unterschiedlichen Servern verwenden.
Und zu guter Letzt gibt es auch eine neue Funktion in der Übersicht der Logfiles. Wer auf den Servern das Paket ‘debian-goodies‘ installiert hat, kann den Nutzen des Befehls ‘checkrestart‘ auskosten und sieht bei Änderungen evtl. Libs eine farblich markierte Übersicht, wenn bezugnehmende Dienste neu gestartet werden müssen.  Dies ist vor allem bei scheinbar unkritischen Updates eine Hilfe.

Weekly Snap: ZFS on Linux, Updates on Debian, Speeches from OSDC 2011

20 – 24 June offered help on using ZFS on Linux and updating with Updian, as well as a few videos of presentations from the recent OSDC 2011.
Gunnar began by giving a thorough introduction to running a native ZFS on Linux. The file system cum logical volume manager boasts pool based memory usage, verifiable data integrity, snapshots and more features beyond other data systems on Linux. As ZFS source code’s license is not compatible with the Linux kernel, it must be separately installed with one of the two available ports. The 1st (http://zfs-fuse.net) is based on the FUSE kernel interface and cannot support all ZFS features, but offers an Ubuntu package. The 2nd (http://zfsonlinux.org) implements ZFS as a native kernel module, but not yet stable. Here, Gunnar provided an example of the 2nd port method, installing on Ubuntu.
Marcus followed with his tip for managing Debian web updates with Updian. The PHP tool replaces the tedium of manual updates, by checking the server via SSH for apt-get updates. It then updates the package list, presenting it on the web front end. From there, servers can be selected to join an update queue to be processed accordingly. Of course, Marcus didn’t forget to demonstrate an Updian installation too.
Last but not least, Rebecca posted a few speeches from OSDC 2011 online. Those who couldn’t join the Open Source Data Center Conference, can now view the videos of a handful of presentations. These include Bernd Erk’s on “Automation in the Data Center” and “Monitoring with Icinga”, Ken Barber’s on “Advanced Puppet” and Thomas Halinka’s on “GlusterFS”. All are available from the OSDC website. Don’t miss the next event – register now for the upcoming Open Source Monitoring Conference on 29 – 30 November at special early bird rates till 15 August.

Debian Web-Updateverwaltung mit Updian

Wer kennt das nicht: Man betreibt viele Server oder virtuelle Maschinen und immer wieder purzeln Updates herein, welche man dann per Hand einspielen darf. Dafür gibt es viele Lösungen, die einem die händische Arbeit abnehmen. Heute möchte ich gern eine auf Debian-Systeme zugeschnittene Variante vorstellen.
Es handelt sich dabei um die Software Updian, ein kleines Tool, welches in PHP geschrieben wurde.
Das Grundprinzip ist schnell erklärt. Updian prüft via SSH die Server, welche es in seiner Liste vorfindet, ob Updates über apt-get verfügbar sind. Dabei wird im Vorfeld die Paketliste aktualisiert. Das Ergebnis wird im Webfrontend dargestellt und man kann selektiv Server zu einer Update-Queue hinzufügen, welche dann abgearbeitet wird. Alle Operationsschritte, also das Sammeln der Informationen, ob Updates verfügbar sind und das Abarbeiten der Queue werden über einen eigenen Cronjob ausgeführt.
Zusätzlich bietet Updian eine “Multi-SSH” Funktion, welche es erlaubt einen Befehl auf allen Systemen auszuführen.
Wenn der Benutzer es möchte, dann kann Updian auch eine E-Mail versenden, wenn es bei einem Prüfungsdurchlauf feststellt, dass Updates verfügbar sind.
Aber kommen wir nun zur Einrichtung von Updian:
Updian ist recht genügsam und es benötigt lediglich die Pakete php5, php5-cli und einen Webserver, der PHP unterstützt.
root@localhost:~# apt-get install apache2 php5 php5-cli
Die Installation von Updian selbst ist relativ unspektakulär. Auf der Projektseite findet man ein Debian-Paket vor, von dem ich aber auf Grund des Alters abrate (seit 2009 wurden keine Änderungen mehr an der Software getätigt). Statt dessen empfehle ich das .tar.gz-File herunterzuladen und im DocumentRoot vom Apache zu entpacken.
root@localhost:/var/www# wget http://www.robhost.de/updian/updian_v0.2.tar.gz
root@localhost:/var/www# tar xvfz updian_v02.tar.gz

Nach dem Entpacken sollte ein Ordner “updian” vorhanden sein, indem alle Files liegen. Diesen Ordner sollte man dem Benutzer www-data zuordnen, da Updian in dem Ordner selbst Schreibrechte benötigt.
root@localhost:/var/www# chown -R www-data updian/
Updian bietet eine eigene Konfigurationsdatei (config.php), welche man seinen Wünschen anpassen kann.
Im nächsten Schritt wird ein Benutzer angelegt, welcher die Überprüfung der Systeme durchführt, quasi mit dem der Cronjob ausgeführt wird.
root@localhost:/var/www# adduser updian
Lege Benutzer »updian« an ...
.
.
Geben Sie ein neues UNIX-Passwort ein:
.
.
root@localhost:/var/www#

Anschließend benötigen wir einen SSH-Key, den wir auf den Systemen verteilen können, damit sich Updian ohne Passwortabfrage verbinden kann. Bei der Frage nach einem Kennwort oder Passphrase bitte nur die Entertaste drücken, da wir diesen nicht gebrauchen können.

root@localhost:/var/www# su - updian
updian@localhost:~# ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/updian/.ssh/id_dsa): [ENTER]
Created directory '/home/updian/.ssh'.
Enter passphrase (empty for no passphrase): [ENTER]
Enter same passphrase again: [ENTER]
Your identification has been saved in /home/updian/.ssh/id_dsa.
Your public key has been saved in /home/updian/.ssh/id_dsa.pub.
The key fingerprint is:
00:00:00:00:00:01:00:10:00:00:00:a0:00:00:00:00 updian@localhost
The key's randomart image is:
+--[ DSA 1024]----+
| ..oooEoo|

Damit unsere Systeme den Key auch kennen, muss er noch kopiert werden. Dies geht am Besten auf folgendem Wege:
updian@localhost:~# ssh-copy-id -i ~/.ssh/id_dsa.pub root@remoteserver

Damit regelämßig die Queue abgearbeitet wird und die Überprüfung auf Updates statt findet, müssen noch die entsprechenden Cronjobs angelegt werden. Hierbei empfiehlt es sich die datei /etc/crontab zu bearbeiten und folgende Zeilen hinzuzufügen:
0 8 * * * updian php /var/www/updian/cron_collect.php > /dev/null 2>&1
0 9 * * * updian php /var/www/updian/cron_updates.php > /dev/null 2>&1

In dem genutzten Beispiel wird täglich um 8 Uhr überprüft, ob Updates vorhanden sind und täglich 9 Uhr die Queue abgearbeitet.
Jetzt kann man Updian bekannt geben, welche Server es überprüfen soll. Das geht ganz einfach über das Web-GUI unter dem Punkt “Servers”, dazu ein Bild:

Nun überprüft Updian im festgelegten Intervall (Cronjob) ob Updates verfügbar sind und benachrichtigt einen, sofern man dies auch eingestellt hat.
Wenn Updian feststellt, dass es Updates hat, so zeigt es das in der Startseite “Home” an, wo man auch die Möglichkeit hat, einzelne oder alle Server zur Update-Queue hinzuzufügen. Mit einem Klick auf den Servernamen kann man einsehen welche Pakete in einer neuen Version vorliegen.

Ein wichtiger Hinweis noch zum Schluss! Der Entwickler stuft Updian noch als Beta ein und weist auch darauf explizit hin. Bisher konnten wir im alltäglichen Betrieb keine Fehler erkennen und es hat sich in der Praxis bei vielen Systemen bewährt.