SchwuZ Keller

Ich möchte Ihnen heute ein paar spannende Updates über unser IT Projekt mit dem Berliner Kulturveranstaltungsunternehmen SchwuZ geben. Vielleicht erinnern Sie sich noch, dass wir für das SchwuZ letztes Jahr eine Zentralisierung ihrer IT-Inseln mit UCS umgesetzt haben, siehe bitpack.io modernisiert IT am Berliner SchwuZ mit Univention Corporate Server. Aber wie IT Projekte so sind, es besteht immer wieder Optimierungsbedarf.

Erfahren Sie in den nächsten Zeilen, wie wir mit der Einrichtung synchronisierter Linux- Nutzerprofile die Netzwerkgeschwindigkeit enorm verbessern konnten.

Die IT Infrastruktur bei SchwuZ

Das SchwuZ hat zwei Standorte mit getrennten Netzwerksegmenten und je einem dedizierten Fileserver. Beide Fileserver werden durch einen OpenVPN-Tunnel gesichert, zwei-Wege-synchronisiert. Alle Ubuntu-Desktops sind mithilfe der Software realmd aus dem freedesktop.org Projekt in die Domäne eingebunden. Die Heimatverzeichnisse werden über das Netzwerk vom jeweiligen Fileserver eingebunden und die Mitarbeiter können sich mit ihrer ID an beiden Standorten anmelden.

Screenshot DNS Konfiguration in UCS

Aufgekommene Netzwerkprobleme

In dieser Umgebung traten Probleme mit der Netzwerkgeschwindigkeit auf, welche zu trägen Desktops und einer verzögerten Bearbeitung der Eingabegeräte führte. Das SchwuZ nutzt ein WLAN-basiertes Netzwerk und die Umsetzung einer strukturierten Verkabelung hätte enorme Kosten, komplexe bauliche Veränderungen und langwierige bürokratische Hürden verursacht.

Lösung: Synchronisierte Nutzerprofile

Wir möchten Ihnen daher die Möglichkeit vorstellen, wie Sie Profile bei Anmeldung am Fileserver und bei Abmeldung vom Fileserver synchronisieren können. Hierfür sind keine tiefgreifenden Eingriffe nötig. Wir ergänzten lediglich Skripte zur Umsetzung der benötigten Funktionalitäten, wodurch viel Raum für Kreativität und Verbesserungen verblieb.

An- und Abmeldung der Domänenbenutzer

Die Anmeldung von Domänenbenutzern geschieht über den Display Manager LightDM.

hello@caelum:~# sudo less /etc/lightdm/lightdm.conf

greeter-show-manual-login=true

Screenshot Ubuntu Access

Wir entschieden uns dazu, den Mechanismus der Synchronisation benutzerbasiert umzusetzen. Hierfür wird in der Konfigurationsdatei .profile eines jeden Benutzers ein Skript namens profilemonitor zum Starten der Synchronisation ergänzt.

hello@caelum:~# less /home/corp.schwuz.de/hello/.profile

/usr/local/bin/profilemonitor &

Screenshot Ubuntu sync process
Das Skript profilemonitor wird im Kontext des Benutzers gestartet und als Prozess im Hintergrund ausgeführt. Dabei wird ein weiteres Skript namens profilesync als Kindprozess gestartet und gewartet, bis dieses beendet wird. Der Kindprozess profilesync führt die Synchronisation vom Fileserver bei einer Anmeldung aus.

hello@caelum:~# less /usr/local/bin/profilesync

log "info: executed for ${USER}"

sync_from_fileserver

while true; do
sleep "${sync_interfall}"
done

Screenshot Ubuntu profile sync completed
Um die Synchronisation zum Fileserver zurück auszulösen, muss dem Kindprozess profilesync ein Signal zum Beenden bei einer Abmeldung gesendet werden. Wir haben dies über den Display Manager LightDM gelöst. Dieser stellt die Funktionalität bereit, ein Skript bei Abmeldung auszuführen.

hello@caelum:~# sudo less /etc/lightdm/lightdm.conf

session-cleanup-script=/usr/local/bin/profilecleanup

Das Skript profilecleanup sendet einem laufendem profilesync Prozess das Signal zum Beenden.

hello@caelum:~# less /usr/local/bin/profilecleanup

/usr/bin/pkill --uid ${USER} -f "/bin/bash /usr/local/bin/profilesync"

Wenn der Kindprozess profilesync beendet wurde, wird durch den Elternprozess profilemonitor eine Synchronisation zurück zum Fileserver ausgeführt und der Vorgang beendet.

${bin_profilesync} &
child=$!
wait "$child"

[ “${?}" -eq "0" ] && {
sync_to_fileserver
}

Das Konzept des Monitors ist nötig, da der Display Manager bei einer Abmeldung eine unmittelbare Rückkehr des angegebenen Programms zur Ausführung erwartet und den Prozess andernfalls sofort terminieren würde. Der Monitor als laufender Prozess im Hintergrund ist dadurch vor einer sofortigen Beendigung geschützt und kann die Synchronisation des Profiles durchführen.

Mar 20 19:14:09 caelum root: profilecleanup - profilesync shutdown successfully for user hello
Mar 20 19:14:09 caelum hello: profilemonitor[25152]: hello synchronized to fs01.corp.schwuz.de

Die Funktionen zur Synchronisation haben wir in eine kleine Bibliothek ausgelagert. Die beiden wichtigen Funktionen, sync_from_fileserver und sync_to_fileserver, bedienen sich des SSH-Schlüssels eines Benutzers und visualisieren den Fortschritt der Synchronisation bei Anmeldung.

Nach erfolgreicher Authentifizierung und Synchronisation des Profiles können Benutzer mit der Performance lokal vorhandener SSD-Festplatten arbeiten. Netzlaufwerke werden bei einer Anmeldung ebenso wie vorhandene Netzwerkdrucker automatisch zur sofortigen Nutzung eingebunden.

Ich hoffe, Ihnen hat unser Update zu diesem Projekt gefallen. Vielleicht können Sie damit sogar Ihre eigene IT optimieren.

Wenn Sie Fragen oder Kommentare haben, schreiben Sie uns bitte über das Kommentarfeld oder kontaktieren Sie mich direkt über unsere Webseite.

Martin Schubert

Martin Schubert von bitpack.io, ein kleines Unternehmen aus dem Norden Berlins mit Fokus auf offenen Technologien für kollaborative Workspaces, besitzt über 10 Jahre Erfahrung im Übersetzen von Technologien in Business-Konzepte und den konkreten technischen Lösungen.

Seine Leidenschaft gilt offenen verteilten Systemen und Infrastrukturlösungen, Serverdiensten wie Kerberos, LDAP, ISC-DHCP, ISC-BIND, Samba, NTP, Cyrus, Apache, MySQL, Memcache. Technologien wie Java, XML, XSLT, JSON und Konzepten für Objektorientierte Analyse und Design.

Was ist Ihre Meinung? Hinterlassen Sie einen Kommentar!

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.