Archiv des Autors: Jörg Kastning

Desktop-Linux – Wer die Wahl hat, hat die Qual

Vorwarnung: Dieser Artikel wird euch vermutlich nicht interessieren, wenn ihr nicht zufällig die gleichen Anforderungen an eine Linux-Distribution für den Desktop stellt wie ich. Mir selbst dient dieser Beitrag als Sammlung von Informationen und zum Vergleich von Distributionen, um schlussendlich eine neue Distribution für meinen Desktop-PC und meine beiden Notebooks auszuwählen. Falls euch langweilig ist oder ihr neugierig seid, dürft ihr natürlich gerne weiter lesen. ;-)

Umfeld

Auf meinen privaten Geräten läuft seit 2006 Ubuntu. Die Geräte haben dabei selten eine Neuinstallation erlebt, sondern wurden meist per Distribution-Upgrade auf eine neue Release aktualisiert. Leider klappt letzteres in jüngerer Vergangenheit zunehmend schlechter und unzuverlässiger. Eine Neuinstallation ist inzwischen einem Upgrade vorzuziehen, da sie meist schneller durchgeführt ist und weniger Nacharbeiten nach sich zieht.

Neben den zunehmenden Problemen mit dem Distribution-Upgrade hat mir Canonical in der jüngeren Vergangenheit ein wenig zu viel an meiner Lieblingsdistribution herumgepfuscht bzw. sie ver(schlimm)bessert. Dies ist der Auslöser, mir mal eine Alternative für den Desktop-Einsatz zu suchen.

Bei meinen Geräten handelt es sich um einen älteren Desktop-PC und zwei ThinkPads (T410 und X201). Dazu gesellt sich in der Peripherie noch ein Brother DCP-540CN, ein Synology DS213air. Alle Komponenten sind in das WLAN-Heimnetzwerk eingebunden. Die Hardware ist alt, doch funktioniert sie noch tadellos und erfüllt ihren Zweck. Daher möchte ich sie gerne noch einige Jahre weiter nutzen.

Anforderungen

Beruflich bin ich im BITS, dem Hochschulrechenzentrum der Uni Bielefeld, tätig und betreue dort diverse IT-Dienste und Themen. Da ich also bereits einen sehr großen Teil des Tages mit der Wartung, Pflege, Entstörung und (sofern noch Zeit ist) der Weiterentwicklung dieser Dienste verbringe, möchte ich mich daheim so wenig wie möglich mit diesen Tätigkeiten aufhalten. Die regelmäßige Installation von Sicherheits-Aktualisierungen ist obligatorisch, doch auf lange Fehlersuche und Behebung möchte ich daheim gerne verzichten.

Bei mir gilt Stabilität vor Bleeding Edge. Ich benötige nicht ständig neue Funktionen und die aktuellste Upstream-Version. Wenn eine Anwendung meine Anforderungen erfüllt und mit Sicherheits-Aktualisierungen versorgt wird, reicht mir das völlig aus.

Aktuell bieten mir die unter Ubuntu 16.04 LTS verfügbaren Anwendungen die Funktionalität, die ich benötige. Die auszuwählende Distribution sollte die entsprechenden Versionen in gleicher oder aktuellerer Version bereitstellen können. Sollte nur eine ältere Version einer Anwendung verfügbar sein, ist dies nicht automatisch ein Ausschlusskriterium. In diesem Fall ist die Anwendung zu testen, ob sie meinen Anforderungen genügt.

Ich wünsche mir einen möglichst großen Unterstützungszeitraum. Ubuntu bietet in den Versionen mit Long Term Support eine Unterstützung für 5 Jahre an. Damit bin ich bisher ganz gut gefahren und möchte mich deshalb in diesem Punkt nur ungern verschlechtern.

Bewertungskriterien

Wie ihr oben gelesen habt, habe ich keine knallharten und messbaren Anforderungen definiert, sondern lediglich Punkte genannt, die mir wichtig sind. In den folgenden Abschnitten werde ich mir eine Auswahl von Linux-Distributionen etwas näher ansehen und diese zuerst auf dem Papier und anhand meiner Erfahrungen miteinander vergleichen. Dabei bewerte ich folgende Kriterien:

  • Release-Zyklus
  • Support-/Life-Cycle
  • Paketverfügbarkeit und Versionsstand
  • Community

Für vorstehend genannte Kriterien vergebe ich Punkte nach folgender Tabelle. Dabei gehen alle Kriterien mit gleicher Gewichtung in das Endergebnis ein, sodass die Distribution mit den meisten Punkten am besten zu mir passen sollte.

Punkte
Beschreibung

0gefällt mir/funktioniert sehr schlecht
1gefällt mir/funktioniert schlecht
2Ist in Ordnung
3gefällt mir/funktioniert gut
4gefällt mir/funktioniert sehr gut

Als Referenz dient mir Xenial, für welches meine Bewertungstabelle wie folgt aussieht:

Ubuntu 16.04 LTS
NameWertBewertung
Unterstützungszeitraum5 Jahre bis April 20213
Release-ZyklusAlle 2 Jahre3
Communityubuntuusers.de4
Kernel4.42
systemd2292
gnome-shell3.18.42
Vim7.42
Firefox66.0.33
Thunderbird60.6.13
Evolution3.18.5.22
gThumb3.4.32
Evince3.18.22
Kile2.1.33
TeXlive20151
XSane0.9994
Summe38

Anmerkung: Bitte beachtet, dass dies hier eine sehr vereinfachte Form einer Bewertungstabelle für meinen privaten Zeitvertreib ist. Als Entscheidungstabelle für die Arbeit ist dieses Format ganz sicher nicht geeignet.

Ausgewählte Distributionen im Vergleich

Für den hier stattfindenden Vergleich habe ich mir folgende Distributionen angesehen (alphabetisch sortiert). Warum genau diese? Nun, entweder kenne ich sie schon oder sie wurden mir von Arbeitskollegen empfohlen.

  • Antergos
  • Arch Linux
  • CentOS
  • Debian
  • Fedora
  • Ubuntu

Antergos

Antergos basiert auf Arch Linux und folgt dem Rolling-Release-Prinzip. Ich möchte kein Rolling Release nutzen. Daher hört die Bewertung hier schon auf, da Antergos für mich nicht in Frage kommt.

Arch Linux

Arch Linux folgt ebenfalls dem Rolling-Release-Prinzip und scheidet daher ebenfalls von vornherein aus.

CentOS 7

CentOS wird aus den Quellen von Red Hat Enterprise Linux gebaut, zu welchem es binärkompatibel ist. CentOS ist nach eigenen Angaben ein Enterprise-Betriebssystem, welches mit langen Wartungszyklen aufwartet. So kann ein Release bis zu zehn Jahre genutzt werden, ohne dass Softwareversionen migriert werden müssen.

Zehn Jahre lang Ruhe. Das klingt verlockend. Grund genug, sich das aktuelle CentOS 7 auf dem Papier anzuschauen.

CentOS 7
NameWertBewertung
Unterstützungszeitraum10 Jahre bis Juni 20244
Release-ZyklusAlle 3-4 Jahre3
CommunityForum und Mailingliste2
Kernel3.10.02
systemd2192
gnome-shell3.28.33
Vim7.42
Firefox60.6.13
Thunderbird60.6.13
Evolution3.28.52
gThumb3.3.42
Evince3.28.22
Kile2.1.33
TeXlive20121
XSane0.9994
Summe38

Debian

Debian ist ein von der Gemeinschaft entwickeltes freies Betriebssystem und mein heimlicher Favorit. Mir gefällt die Idee, mich neben einer RPM-basierten Distribution auf der Arbeit,Ubuntu importiert den Großteil seiner Pakete aus Debian Unstable. Für einen Teil dieser Pakete übernimmt nach dem Debian Import Freeze die Firma Canonical die Pflege. Der größte Teil landet hingegen in der Komponente universe, wo er von den MOTU betreut wird (oder gar nicht). Die Folge dieses Vorgehens: Wenn Pakete in Debian Unstable während des Debian Import Freeze kaputt und unbenutzbar sind, werden sie in die Ubuntu-Paketquellen importiert und bleiben mit großer Wahrscheinlichkeit für die Lebensdauer des jeweiligen Releases daheim mit einer DEB-basierten Distribution zu beschäftigen, um in beiden Paketformatwelten auf dem Laufenden zu bleiben.

Debian Stable steht in dem Ruf rock solid zu sein, was meinem Wunsch nach einer sehr stabilen Distribution entgegen kommt. Die Softwarepakete in Debian Stable gelten gemeinhin als sehr gut abgehangen. Kritiker bezeichnen sie auch als hoffnungslos veraltet. So lange sie die von mir gewünschte Funktionalität bieten, ist mir das Alter egal. Falls ich mich für Debian entscheide, werde ich auf die Veröffentlichung von Buster warten, welche mit folgenden Werten aufwartet.

Debian 10 (Buster)
NameWertBewertung
Unterstützungszeitraum3 Jahre (+2 Jahre LTS)2
Release-ZyklusCa. alle 2 Jahre3
CommunitySee Support Page2
Kernel4.19.163
systemd2412
gnome-shell3.30.24
Vim8.13
Firefox60.6.13
Thunderbird60.6.13
Evolution3.30.52
gThumb3.6.22
Evince3.30.22
Kile2.9.922
TeXlive20183
XSane0.9994
Summe40

Fedora

Bei Fedora handelt es sich wiederum um eine RPM-basierte Distribution. Diese wartet mit recht aktuellen Softwarepaketen auf und gibt sich selbst als für Desktops, Workstations, Laptops und Server geeignet. Fedora wird auch gern als Testlabor für RHEL bezeichnet, da viele Entwicklungen, die sich hier etablieren konnten, später in RHEL übernommen werden.

Die Aktualität hat ihren Preis. So kommt Fedora mit recht kurzen Releasezyklen daher, was für mich ganz klar Punktabzug bedeutet.

Fedora Rawhide
NameWertBewertung
Unterstützungszeitraum13 Monate0
Release-ZyklusAlle 6 Monate0
Communityfedoraforum.de2
Kernel5.13
systemd2422
gnome-shell3.32.14
Vim8.13
Firefox66.0.33
Thunderbird60.6.13
Evolution3.33.12
gThumb3.7.13
Evince3.32.02
Kile2.9.922
TeXlive20183
XSane0.9994
Summe36

Ubuntu LTS

Basierend auf Debian laufen die Ubuntu LTS Releases seit Jahren auf meinen Rechnern. Da ich mit dieser Distribution die meiste Erfahrung habe und dadurch auch einige ihrer Macken kenne, fällt es mir schwer, bei einer Bewertung neutral zu bleiben. Doch werde ich mir Mühe geben.

Ubuntu importiert den Großteil seiner Pakete aus Debian Unstable. Für einen Teil dieser Pakete übernimmt nach dem Debian Import Freeze die Firma Canonical die Pflege. Der größte Teil landet hingegen in der Komponente universe, wo er von den MOTU betreut wird (oder gar nicht). Die Folge dieses Vorgehens: Wenn Pakete in Debian Unstable während des Debian Import Freeze kaputt und unbenutzbar sind, werden sie in die Ubuntu-Paketquellen importiert und bleiben mit großer Wahrscheinlichkeit für die Lebensdauer des jeweiligen Release kaputt und unbenutzbar. Dieses Vorgehen halte ich persönlich für ganz großen Schwachsinn.

Als einzigartig hingegen empfinde ich die deutschsprachige Community ubuntuusers.de. Auch wenn hier in einigen Themen auch mal die Fetzen fliegen, ist der Umgangston doch überwiegend freundlich. Hier fand ich in der Vergangenheit stets wertvolle Hilfe bei kleinen und auch großen Problemen

Ubuntu 18.04 LTS
NameWertBewertung
Unterstützungszeitraum5 Jahre bis April 20233
Release-ZyklusAlle 2 Jahre3
Communityubuntuusers.de4
Kernel4.153
systemd2372
gnome-shell3.28.32
Vim8.02
Firefox66.0.33
Thunderbird60.6.13
Evolution3.28.52
gThumb3.6.12
Evince3.18.42
Kile2.9.911
TeXlive20171
XSane0.9994
Summe37

Schlussfolgerung und selbstkritische Reflexion des Distributions-Vergleichs

Ubuntu 16.04 LTSCentOS 7Debian BusterFedora RawhideUbuntu 18.04 LTS
3838403637

Sieg nach Punkten für das hoffentlich bald erscheinende Debian Buster!

Dass mein heimlicher Favorit das Rennen gemacht hat, verwundert nicht. Nüchtern und bei Licht betrachtet muss ich gestehen, dass der oben stehende Vergleich Makulatur und nicht objektiv ist. So ist der Vergleich und die Bewertung von Software-/Paket-Versionen nicht geeignet, um zu bestimmen, wie gut meine funktionalen Anforderungen erfüllt werden. Dazu hätte es eines praktischen Tests der einzelnen Versionen bedurft.

So offenbarte ein praktischer Vergleich von kile in Version 2.9.91, dass mir dieses in der Benutzung deutlich schlechter gefällt, als die ältere Version 2.1.3. Und was für kile gilt, mag selbstverständlich auch für andere Anwendungen gelten.

Ein weiterer großer Schwachpunkt des Vergleichs ist der Punkt ‚Community‘. Aus persönlicher Erfahrung kenne ich nur die ubuntuusers.de wirklich gut, weil ich nur hier seit vielen Jahren selbst aktiv bin. Die Bewertung aller anderen Communities und Unterstützungsmöglichkeiten basiert auf deutlich weniger Erfahrungen und Teils sogar nur auf Hörensagen. Eine objektive Bewertung ist so natürlich nicht möglich.

Streng genommen handelt es sich bei dem angestellten Vergleich um Humbug und Mumpitz. Bitte nicht nachmachen!

Mir selbst reicht er jedoch als Indikator, dass das kommende Debian Buster meine Anforderungen daheim gut erfüllen könnte. Es wird daher nach der Veröffentlichung auf einem meiner Geräte installiert und in der Praxis erprobt.

Tja, wenn ich ehrlich bin, ist dieser Artikel wenig hilfreich. Zum Trost sei gesagt, dass er mir half, ein wenig die Zeit bis zum Release von Buster zu überbrücken.

Verzeichnis „/.well-known/“ überwachen

In einem bei heise online veröffentlichten Artikel ist zu lesen, dass das Verzeichnis „/.well-known/“ ein beliebtes Malware-Versteck auf gehackten Webservern ist. Der heise-Artikel empfiehlt Admins, den Inhalt von „/.well-known/“ und ggf. weiterer Unterverzeichnisse von Zeit zu Zeit zu prüfen. Um dies nicht manuell tun zu müssen, biete ich mit diesem Artikel ein Tutorial, das beschreibt, wie man diese Aufgabe mit Hilfe von systemd.path-Units automatisieren kann.

Ziel ist es, dass das System in dem Fall, dass sich der Verzeichnisinhalt von „/.well-known/“ oder eines darin enthaltenen Unterverzeichnisses ändert, eine E-Mail mit einem aktuellen Verzeichnis-Listing an eine konfigurierte E-Mail-Adresse sendet.

Voraussetzungen

Um diesem Tutorial folgen zu können, muss das betrachtete System

  • systemd als Init-System verwenden und
  • in der Lage sein, E-Mails zu versenden.

Darüber hinaus werden Kenntnisse in der Bearbeitung von Dateien mit einem Texteditor im Terminal vorausgesetzt.

Hinweis: Das Tutorial wurde mehrfach erfolgreich unter Ubuntu Bionic getestet. Der Leser Daniel hat versucht es unter Ubuntu Xenial nachzuvollziehen, was jedoch nicht geglückt ist. Details dazu finden sich in den Kommentaren zum Artikel.

Erstellung der Path-Unit

Im Verzeichnis /etc/systemd/system/ wird die Datei beispiel.path mit folgendem Inhalt erstellt. Der Dateiname kann selbstverständlich frei gewählt werden. Er muss lediglich auf .path enden.

[Unit]
Description="Meine '/.well-known/' Verzeichnisse auf Änderungen hin überwachen"

[Path]
PathModified=/var/www/site1/public/.well-known/
PathModified=/var/www/site1/public/.well-known/acme-challenge/
PathModified=/var/www/site2/public/.well-known/
PathModified=/var/www/site2/.well-known/acme-challenge/
PathModified=/var/www/site3/public/.well-known/
PathModified=/var/www/site3/public/.well-known/acme-challenge/
Unit=beispiel.service

[Install]
WantedBy=multi-user.target

In obigem Beispiel wird davon ausgegangen, dass der Webserver drei verschiedene Seiten ausliefert, die jeweils über ein eigenes „/.well-known/“-Verzeichnis mit jeweils einem Unterverzeichnis verfügen.

In der Sektion [Path] wird mit PathModified= der absolute Pfad zu den zu überwachenden Verzeichnissen spezifiziert, während Unit= angibt, welche Service-Unit ausgeführt werden soll, wenn sich der Inhalt eines der spezifizierten Verzeichnisse ändert. Diese Unit soll gestartet werden, wenn sich das System im Multi-User-Mode befindet.

Erstellung der Service-Unit

Als nächstes wird die auszuführende Service-Unit erstellt. Diese sollte den gleichen Namen wie die Path-Unit haben, im Unterschied zu dieser jedoch auf .service enden. Die Datei beispiel.service wird ebenfalls im Verzeichnis /etc/systemd/system/ erstellt.

[Unit]
Description="Führt Skript aus, wenn eine Datei sich geändert hat."

[Service]
Type=simple
ExecStart=/home/oglattermann/skript.sh

[Install]
WantedBy=multi-user.target

In der Service-Unit wird definiert, was getan werden soll, wenn die dazugehörige Path-Unit ausgelöst wird. In diesem Beispiel soll das hinter ExecStart= angegebene Skript ausgeführt werden.

Erstellung des auszuführenden Skripts

Findet eine Änderung in einem der überwachten Verzeichnisse statt, wird folgendes Skript ausgeführt:

#!/bin/bash
MAIL_TEXT="/tmp/well-known"
MAIL_RCP="foo@example.com"
create_mail() {
cat >"${MAIL_TEXT}" <<EOF
Achtung, der Inhalt der '/.well-known/'-Verzeichnisse wurde verändert. Die Verzeichnisse haben aktuell folgenden Inhalt:

$(find /var/www/ -type d -name ".well-known" -exec ls -lRa {} \;)
EOF
}

send_mail() {
    /usr/bin/mailx -s 'Achtung: Inhalt von /.well-known/ geändert' ${MAIL_RCP} <"${MAIL_TEXT}"
}

create_mail
send_mail

Das obige Skript ist abends auf dem Sofa entstanden und erhebt nicht den Anspruch schön oder perfekt zu sein. Es erfüllt jedoch seinen Zweck und sendet eine E-Mail an eine angegebe Empfangsadresse. In der Mail werden alle „/.well-known/“-Verzeichnisse inkl. enthaltener Dateien und Unterverzeichnisse aufgelistet, welche sich innerhalb des Suchpfads /var/www befinden.

Die Überwachung scharf schalten

Um die Überwachung zu aktivieren, sind noch die folgenden Schritte mit root-Rechten auszuführen:

  1. Die Units zu aktivieren
  2. Die Path-Unit zu starten
sudo systemctl enable beispiel.path beispiel.service
sudo systemctl start beispiel.path

Zum Test kann man nun eine neue Datei oder ein Verzeichnis in einem der überwachten Pfade erstellen. Daraufhin, sollte man eine E-Mail erhalten, welche über die Änderung informiert.

Ein Hinweis zum Schluss

Erwähnt werden muss, dass nur Änderungen signalisiert werden können, die vom Kernel ausgeführt werden. Führen andere Maschinen auf per Netzwerk eingebundenen Pfaden Änderungen durch, wird das nicht signalisiert.

https://www.my-it-brain.de/wordpress/unit-typ-systemd-path-kurz-vorgestellt/#comment-1624

Quellen und weiterführende Links

Man kann WhatsApp nicht entkommen

Bisher mache ich um WhatsApp einen Bogen. Ich möchte die Datenkrake nicht selbst noch weiter füttern und es stört mich nicht, dass ich meine knappe Zeit nicht auch noch auf/in WhatsApp verbringe.

Vor einigen Tagen wurde ich jedoch in Versuchung geführt, denn WhatsApp schien die einzige Möglichkeit zu sein, mit einem alten Bekannten in Kontakt treten zu können. Nach der Installation der App auf meinem Mobiltelefon, stellte ich fest, dass es keine sinnvolle Nutzungsmöglichkeit gibt, ohne der App Zugriff auf meine Kontakte zu geben, welche auf meinem Mobiltelefon gespeichert sind. Dies kommt für mich nicht in Frage, da ich die Telefonnummern meiner Kontakte, welche evtl. nicht bei WhatsApp sind, nicht in den Rachen dieser Datenkrake stopfen möchte. Das dies der Fall ist, bestätigen folgende Auszüge aus den WhatsApp Nutzungsbedingungen (Stand April 2019).

Adressbuch. Im Einklang mit geltenden Gesetzen stellst du uns regelmäßig die Telefonnummern von WhatsApp Nutzern und anderen Kontakten in deinem Mobiltelefon-Adressbuch zur Verfügung, darunter sowohl die Nummern von Nutzern unserer Dienste als auch die von deinen sonstigen Kontakten.

[…]

Deine Account-Informationen. Um einen WhatsApp Account zu erstellen, gibst du deine Mobiltelefonnummer und grundlegende Informationen (einschließlich eines Profilnamens) an. Im Einklang mit geltenden Gesetzen stellst du uns regelmäßig die Telefonnummern in deinem Mobiltelefon-Adressbuch zur Verfügung, darunter sowohl die Nummern von Nutzern unserer Dienste als auch die von deinen sonstigen Kontakten. Möglicherweise stellst du uns auch eine E-Mail-Adresse zur Verfügung. Du kannst auch andere Informationen zu deinem Account hinzufügen, wie beispielsweise ein Profilbild und eine Info.

https://www.whatsapp.com/legal/#privacy-policy-information-we-collect

Dass es auch anders geht, zeigt z.B. der Nachrichtendienst Threema. Dieser bietet die Möglichkeit Threema-IDs selektiv mit den Kontakten zu verknüpfen, die ebenfalls Threema nutzen. Hier wird nicht das komplette Adressbuch ausgelesen. Allerdings ist hier auch das Geschäftsmodell ein anderes. Die App ist kostenpflichtig und Datenschutz und Datensicherheit sind Produktmerkmale. Bei WhatsApp sind die eigenen Daten und die Daten anderer die Währung. Hier ist man selbst das Produkt.

Ich selbst habe mich entschieden, die Telefonnummern meiner Kontakte nicht ungefragt an WhatsApp weiterzugeben und habe die App wieder deinstalliert. Vielen Dank übrigens an all meine Kontakte, welche nicht so umsichtig waren und meine Telefonnummer frei Haus an WhatsApp geliefert haben. Das habt ihr großartig gemacht!

logo_clt2019

Zu Besuch bei den Chemnitzer Linux Tagen 2019

Auch in diesem Jahr haben die Chemnitzer Linux Tage wieder in das zentrale Hörsaal- und Seminar-Gebäude der Technischen Universität Chemnitz eingeladen. Das Motto lautete diesmal „Natürlich intelligent“ und so wundert es nicht, dass sich eine Vielzahl von Vorträgen den Themen Künstliche Intelligenz und Maschinelles Lernen widmeten. Darüber hinaus gab es interessante Vorträge zu den Themen IoT, Container, Sicherheit, Einsteiger, Datacenter, usw. Alles in allem wurde wie im letzten Jahr ein vielseitiges Programm geboten.

Anreise am Freitag

Wie im vergangenen Jahr bin ich auch dieses Mal wieder mit dem Auto angereist, denn 4,5 Std. Fahrt sind mir doch lieber, als 6-7 Std. Reisezeit mit der Bahn (laut Fahrplan). So kam ich Freitag Abend rechtzeitig an, um das Social Event im Turmbrauhaus zu besuchen. Es war ein schöner Abend mit freundlichen Menschen bei interessanten Gesprächen und natürlich 1..n Hopfenkaltschalen.

Ich habe mich gefreut, bekannte Gesichter von ubuntuusers.de wieder zu sehen und neue Gesichter hinter einigen Blogs kennen zu lernen, die ich regelmäßig lese.

Auftakt am Samstag

Punkt 7.00 Uhr Frühstück im Hotel, 8.00 Uhr Einlass bei den Chemnitzer Linux Tagen und ab 9.00 Uhr öffnete die Ausstellerfläche und das Vortragsprogramm startete. Ich selbst lernte an diesem Tag etwas über Präsentationen mit XeLaTeX (Beamer), NVMe, NVMe over Fabrics und erfuhr die ein und andere Neuigkeit im persönlichen Gespräch mit alten und neuen Bekannten. Mein persönliches Zitat des Tages stammt von D. Menzel und lautet: „NVMe over Fabric ist wie iSCSI auf Steroiden.“ :-D

Ausklang am Sonntag

Auch der Sonntag begann früh mit dem Frühstück um 7.00 Uhr. Um 9.00 Uhr war bereits alles für die Abreise gepackt und die Chemnitzer Linux Tage öffneten ihre Halle für den zweiten Veranstaltungstag. Dieser startete für mich mit einigen Standbesuchen, um Informationen über mögliche Schulungsangebote und Tipps für den Einsatz von Ansible einzusammeln, bevor es dann um 10.00 Uhr in den ersten Vortrag, den Samba Status Report, ging.

Laut dem zuvor genannten Vortrag tritt SMB2 an, um NFS zu töten. Naja, ich persönlich glaube, Totgesagte leben länger.

Der Storage Track endete mit einem Vortrag von Kai Wagner, welcher über die Neuigkeiten im neuen Ceph Release Nautilus berichtete. In hohem Tempo führte Kai durch eine Folienschlacht, um keine coole Neuerung zu vergessen. Bei den vielen lang erwarteten Neuerung kann ich gut verstehen, dass Kai keine davon unterschlagen wollte. Dennoch hat Kai hier einen tollen und unterhaltsamen Talk gehalten. Danke hierfür.

Der letzte Vortag für mich an diesem Tage war Open Source und Medizin, welcher einen interessanten Einblick in die Forschung mit Medizindaten bot.

Im Anschluss wurden die Vorträge noch in kleinen Gruppen diskutiert, bevor ich mich verabschiedete, um mich auf den Heimweg zu machen.

Es war mal wieder ein schönes Wochenende und tolle Chemnitzer Linux Tage 2019. Bis zum nächsten Jahr.

RHEL Spiegelserver für arme Admins

Es muss nicht immer gleich der Red Hat Sattelite Server sein, um einen lokalen Spiegelserver für die Installation von RPM-Paketen bereitzustellen.

Auf GitHub habe ich im Repository „Poor man’s RHEL mirror“ eine kleine Sammlung von Bash-Skripten zusammengestellt, mit denen sich ein Spiegelserver für RHEL-Repositories aufbauen lässt. Mit diesem können RHEL-Repositories, für welche man eine gültige Subskription besitzt, auf einen Host im lokalen Netzwerk synchronisiert und deren Pakete anderen RHEL-Servern im LAN zur Verfügung gestellt werden.

Neben der reinen Spiegelung können mit den auf GitHub bereitgestellten Skripten weitere lokale Stage-Repositories eingerichtet werden, mit denen sich die Verfügbarkeit von Paketen für einzelne Stages steuern lässt. Zusätzlich bietet das Projekt Skripte, um eigene YUM-Repositories zu erstellen, um zum Beispiel eigene Pakete darüber bereitstellen zu können. Des Weiteren wurde die Möglichkeit berücksichtigt, die Red Hat Errata Informationen in die lokalen RHEL-Repositories zu integrieren, um die --advisory Option für YUM auch auf Systemen nutzen zu können, die über keine eigene Verbindung zum Internet verfügen.

Warum ist dieses Projekt nützlich?

  • Es schont die eigene Internetverbindung, da Pakete nur einmal aus dem Internet heruntergeladen und anschließend im LAN zur Verfügung gestellt werden.
  • Es unterstützt bei der Erstellung eines YUM-Repositories zur Bereitstellung von RPM-Paketen.
  • Es unterstützt das Staging-Konzept, in dem es die Möglichkeit bietet, stage-spezifische Repositories bereitzustellen.
  • Es implementiert die Red Hat Errata Informationen in die gespiegelten RHEL-Repos, so dass diese von angebundenen Servern genutzt werden können, die über keine eigene Internetverbindung verfügen.
  • Es entstehen keine Zusatzkosten, da alle notwendigen Werkzeuge in den Repos einer RHEL-Standard-Subskription enthalten sind.

Wer kann dieses Projekt nutzen?

Das Projekt selbst steht unter der MIT-Lizenz und kann unter deren Bedingungen frei genutzt, modifiziert und weiter verteilt werden.

Für den Betrieb des Spiegelservers ist der Besitz einer gültigen RHEL-Subskription Voraussetzung. Denn es können nur jene Repos gespiegelt werden, für die eine gültige Subskription vorhanden ist. Auch alle an den Spiegelserver angeschlossenen Systeme müssen über eine entsprechende und gültige Subskription verfügen.

Bei Fragen zu Subskriptionen helfen die folgenden Seiten weiter:

Um mit diesem Projekt einen Spiegelserver aufsetzen und betreiben zu können, sind gewisse Kenntnisse erforderlich. Zu diesen zählen die Installation eine RHEL-Systems inkl. Registrierung, das Hinzufügen von Subskriptionen und die Installation von Paketen. Informationen hierzu bietet die Product Documentation for Red Hat Enterprise Linux 7.

Wie ist das GitHub-Repository zu diesem Projekt aufgebaut?

Das GitHub-Repository beinhaltet ein README, welches einen Überblick über das Projekt und eine Kurzbeschreibung der einzelnen Skripte in englischer Sprache beinhaltet. Im Master-Branch befindet sich die letzte stabile Version des Projekts. Weiterentwicklungen und Fehlerkorrekturen werden im Dev-Branch gepflegt und nach einer Testphase in den Master-Branch übernommen.

Sorgen, Nöte und Anträge sowie gefundene Fehler dürfen gern über die Issue-Funktion oder in den Kommentaren zu diesem Beitrag gemeldet werden.

An dieser Stelle folgt eine Beschreibung in deutscher Sprache, wie ein Spiegelserver mit diesem Projekt aufgebaut werden kann. Dabei handelt es sich um keine Schritt-für-Schritt-Anleitung und es werden grundlegende Kenntnisse über den Betrieb eines RHEL-Servers und die Installation sowie Konfiguration von Paketen vorausgesetzt.

Einrichtung eines Spiegelservers für arme Sysadmins

Um das Projekt nutzen zu können, benötigt man eine RHEL-Installation mit gültiger Subskription, auf welcher mindestens die folgenden Pakete installiert sein müssen:

  • reposync und createrepo, um RHEL-Repos synchronisieren und eigene Repos erstellen zu können
  • git zum Klonen des hier beschriebenen Projekts
  • Die Gruppe Basic Web Server oder einen anderen Webserver eurer Wahl, um die gespiegelten Repos über HTTP im LAN bereitstellen zu können

Zu Beginn sind die Dateien aus dem oben genannten GitHub-Repository in einem Verzeichnis auf dem lokalen Host bereitzustellen. Anschließend ist das Projekt zu konfigurieren. Die dazu notwendigen Schritte werden in den folgenden Abschnitten erläutert.

CONFIG.SAMPLE

Hierbei handelt es sich um die Hauptkonfigurationsdatei. Diese ist in CONFIG umzubenennen bzw. zu kopieren und zu editieren. In dieser Datei werden die Variablen gesetzt, die von den verschiedenen Shell-Skripten verwendet werden. Darunter sind z.B. Angaben, welche Repos gespiegelt werden und wo die Dateien gespeichert werden sollen.

Die Datei ist mit Kommentaren versehen und sollte weitgehend selbsterklärend sein (was für alle weiteren Dateien gilt).

create_yum_repo.sh

Dieses Skript kann genutzt werden, um ein eigenes YUM-Repository zu erstellen, über welches RPM-Pakete bereitgestellt werden können. Der Name des zu erstellenden Repos kann dem Skript als Parameter übergeben werden.

do_reposync.sh

Dies ist das Herzstück des Projekts. Es kümmert sich um die Spiegelung der RHEL-Repos. Die notwendigen Parameter werden in der Datei CONFIG konfiguriert.

Das Skript lädt nur die aktuellen Pakete aus den Repos herunter, löscht aus den Upstream-Repos entfernte Pakete jedoch nicht automatisch auf dem lokalen Host. Dies ist meinen persönlichen Anforderungen geschuldet. Es ist nicht ausgeschlossen, dass ich diese Parameter in Zukunft ebenfalls konfigurierbar gestalte.

Einen Überblick über den Speicherbedarf ausgewählter RHEL-Repos findet ihr hier: How much disk space do I need for reposync?

Um die heruntergeladenen Pakete im LAN zur Verfügung zu stellen, muss das BASEDIR (siehe CONFIG) über einen Webserver zugreifbar gemacht werden.

refresh_repo.sh

Werden einem Repo neue RPM-Dateien hinzugefügt, muss die Metadaten-Datenbank aktualisiert werden, damit Klienten die neuen Pakete auch finden können. Um diese Aktualisierung kümmert sich eben dieses Skript.

rsync_repo.sh

Mit diesem Skript lassen sich Repos auf dem lokalen System synchronisieren. Dabei werden die Dateien jedoch nicht 1:1 kopiert, sondern Hardlinks erstellt. Dies spart bei der Verwendung mehrerer Repos für unterschiedliche Stages Speicherplatz.

Neben dem kompletten Sync eines Repos ist es auch möglich, dem Skript eine Datei zu übergeben, welche die Namen der Pakete enthält, welche in ein weiteres Repo „transportiert“ werden sollen.

Wrapper-Scripts

In meiner Umgebung arbeiten wir mit bis zu vier verschiedenen Stages (E, I, Q und P). Für jede dieser Stages wird ein eigenes Stage-Repo des Upstream rhel-7-server-rpms erzeugt. Um diese Stage-Repos zu aktualisieren, werden die folgenden Skripte verwendet:

  • update_rhel-e-stage.sh
  • update_rhel-i-stage.sh
  • update_rhel-q-stage.sh
  • update_rhel-p-stage.sh

Jede Stage wird mit den Paketen aus der vorhergehenden aktualisiert. So ruft z.B. update_rhel-e-stage.sh das Skript rsync_repo.sh, um die Pakete aus dem lokalen Spiegel des Upstreams rhel-7-server-rpms zu importieren. update_rhel-i-stage.sh verwendet dementsprechend die rhel-e-stage als Quelle usw.

Diese Konfiguration ist für meinen Anwendungsfall optimiert. Die Verwendung der Skripte ist optional. Der Spiegelserver funktioniert auch ohne diese Wrapper-Scripts.

update_mirror_packages_and_erratas.sh

Dieses Skript aktualisiert die Pakete in den Repos des lokalen Spiegelservers inkl. der Red Hat Errata Informationen. Letztere ermöglichen es, die Erratas (RHSA, RHBA und RHEA) auch Systemen verfügbar zu machen, welche über keine Verbindung zum Internet verfügen.

Das Skript ist in der Standardeinstellung auf meinen Anwendungsfall optimiert und aktualisiert am Ende alle vorhandenen RHEL-Stage-Repos. Wer diese Funktion nicht benötigt, kann sie durch Auskommentieren der Zeilen 45 und 46 im Skript deaktivieren.

Anschließend kann ein Cronjob erstellt werden, welcher das Skript ausführt, um den Spiegelserver regelmäßig gemäß der eigenen Anforderungen zu aktualisieren.

Die gespiegelten Repos verfügbar machen

Hat man die Repos seiner Wahl gespiegelt, ergibt sich je nach Konfiguration eine Verzeichnisstruktur ähnlich der folgenden.

$ tree -L 2
.
├──  rhel-7-test-mirror
│   ├── rhel-7-server-extras-rpms
│   ├── rhel-7-server-optional-rpms
│   ├── rhel-7-server-rpms
│   ├── rhel-7-server-supplementary-rpms
│   ├── rhel-e-stage
│   ├── rhel-e-stage.repo
│   ├── rhel-i-stage
│   ├── rhel-p-stage
│   ├── rhel-q-stage
│   └── rhel-server-rhscl-7-rpms

Das Verzeichnis rhel-7-test-mirror aus obigen Beispiel enthält die gespiegelten Repos als Unterverzeichnisse. Dieses Verzeichnis sollte über einen Webserver zugreifbar gemacht werden, um die Pakete den Clients im lokalen Netzwerk verfügbar zu machen.

Im obigen Listing ist eine Datei namens rhel-e-stage.repo zu sehen. Dabei handelt es sich um eine Repo-Datei, welche heruntergeladen und im Verzeichnis /etc/yum.repos.d/ platziert werden kann, um wie in diesem Beispiel das Repo rhel-e-stage zu aktivieren.

Aufbau einer Repo-Datei

Das folgende Listing zeigt die kommentierte Repo-Datei aus dem vorstehenden Abschnitt. Sie kann als Muster für weitere eigene Repo-Dateien dienen.

[rhel-e-stage] # Repo ID
baseurl = http://example.com/rhel-7-test-mirror/rhel-e-stage/
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
name = Repo for rhel-7-server-rpms (Test)

Fragen, Sorgen, Nöte und Anträge

Das Projekt und die enthaltene Software werden so wie sie sind unter der angegebenen Lizenz zur Verfügung gestellt.

Fragen, Sorgen, Nöte und Anträge können sowohl hier in den Kommentaren zum Artikel, als auch auf Github hinterlassen werden.

Ich hoffe, dass dieses Projekt euch (weiterhin) nützlich ist und freue mich über Rückmeldungen, wie es euch gefällt.

Kommentar zu Docker – Genauso schlimm wie befürchtet

Marius hat gestern in Braunschweig darüber gebloggt, dass Docker – Genauso schlimm wie befürchtet ist. Bis Marius zu seiner Analyse kommt, stimme ich ihm voll und ganz zu. Auch ich gehöre zu den ewig gestrigen, den Nörglern, Pessimisten und Schwarzsehern, welche es von Anfang an gesagt haben. Und unsere düstere Vorsehung ist eingetreten. Welch Überraschung.

Wo ich Marius nicht mehr zustimme, sind die Ergebnisse seiner Analyse, welche er in der zweiten Hälfte seines Artikels vornimmt. So schreibt er dort:

Der sicherere Ansatz ist und bleibt, daß jemand das OS vorgibt und sich die Apps an die Umgebung anpassen müssen. Damit sind die gezwungen Updates zu machen und das dient dann der allgemeinen Sicherheit.

URL: https://marius.bloggt-in-braunschweig.de/2019/02/27/docker-genauso-schlimm-wie-befuerchtet/

Diese Aussage ist in meinen Augen falsch. Denn niemand wird gezwungen, Updates für die in einem Betriebssystem installierten Anwendungen zu veröffentlichen. Folgende Beispiele sollen dies verdeutlichen.

Man nehme ein herkömmliches Betriebssystem, sagen wir Ubuntu oder Red Hat Enterprise Linux. Unter beiden Betriebssystemen kann ich mir nun eine Anwendung als DEB- bzw. RPM-Paket oder auch ganz klassisch als TAR-Archiv aus dem Internet herunterladen und auf meinem Betriebssystem installieren. Habe ich nun eine Garantie, dass ich Sicherheitsupdates für diese Software erhalte? Die Antwort lautet: Nein.

Verwendet man eine nach obigem Muster installierte Software und nutzt diese gemeinsame Bibliotheken, mag man das Glück haben, dass die Software nach der Aktualisierung eben dieser Bibliotheken nicht mehr funktioniert. Ob man dies als Sicherheitsgewinn wertet oder es doch nur ein Ärgernis ist, sei einmal dahingestellt.

Im Ubuntuversum soll die Paketquelle universe als abschreckendes Beispiel dienen. In dieser befindet sich so viel alte und nicht mehr gepflegte Software, dass man auch hier die Chance hat, Anwendungen mit ein oder mehreren Sicherheitslücken zu finden.

Zugegeben, mit einer zentralen Paketverwaltung ist es einfacher, sein System aktuell zu halten, um es vor Sicherheitslücken zu schützen. Eine Garantie ist es nicht und kein Sysadmin sollte sich darauf ausruhen.

Abzulehnen ist also alles, was eine App installiert, die mit eigener Umgebung kommt, sowas wie FlatPak, Docker und Snap.

URL: https://marius.bloggt-in-braunschweig.de/2019/02/27/docker-genauso-schlimm-wie-befuerchtet

Marius schließt seinen Beitrag mit obigem Satz. Dieser ist mir zu pauschal. Denn FlatPak, Docker und Snap sind nicht per Definition unsicher. Wer sich jedoch ohne lange nachzudenken, den erstbesten Container vom Docker Hub herunterlädt ist selber schuld.

Es gibt jedoch auch die Möglichkeit eine eigene Registry für Container aufzusetzen und zu betreiben, um nur Container zu verwenden, die man selbst geprüft bzw. gebaut hat. Oder man nutzt die Registries der Enterprise Distributionen wie z.B. Red Hat OpenShift, welche sich gegen Entgelt um die Bereitstellung geprüfter Container-Images kümmern. Auch dies ist keine Garantie für (absolute) Sicherheit und Aktualität. Doch hat hier wenigstens jemand den Sicherheitsaspekt im Auge und arbeitet an diesem Thema. Dies ist im Vergleich zur völlig freien, unkontrollierten und schwer prüfbaren Müllhalde ein großer Vorteil.

Ähnliches gilt für FlatPak und Snap. Letztlich stehen und fallen die kommerziellen Angebote damit, wie gut ihr Anbieter seinen Job macht. Auch hier wurden schon Pakete gefunden, die neben ihrer eigentlichen Aufgabe noch einen Zweitjob (Crypto currency mining) hatten.

Für pauschale bzw. absolute Aussagen ist es in meinen Augen noch zu früh. Wir werden noch eine Weile abwarten müssen, wie sich die einzelnen Projekte weiterentwickeln. Als Sysadmin sollte man weiterhin stets auf der Hut sein und seinen gesunden Menschenverstand benutzen.

LaCrosse-Sensoren in FHEM einbinden

Nachdem ich erfreulich viele Rückmeldungen auf meinen Artikel Empfehlungen für Raumklimaüberwachung erwünscht erhielt, habe ich mich für die Verwendung von FHEM [1], JeeLink [2] und LaCrosse-Sensoren [3] entschieden. Die Einrichtung folgt dem Artikel  [4] von MeinTechBlog.DE.

An dieser Stelle werden die minimal notwendigen Befehle für meine Umgebung dokumentiert. Links zu weiterführenden Informationen finden sich am Ende des Beitrags.

  1. JeeLink in den Paringmodus schalten: set <JeeLinkName> LaCrossePairForSec <seconds>
  2. Batterien in LaCrosse-Sensor einlegen und Pairing abwarten
  3. Sensor und Log umbenennen: rename <AlterName> <NeuerName>
  4. Raum zuweisen: attr <SensorName> room <RaumName>
  5. Loginterval anpassen:
    1. attr <SensorName> event-min-interval temperature:600,humidity:600,battery:3600
    2. attr <SensorName> event-on-change-reading temperature:0.5,humidity:2,battery

Quellen und weiterführende Links

  1. FHEM-Webseite: http://www.fhem.de/fhem_DE.html
  2. JeeLink im FHEM-Wiki: https://wiki.fhem.de/wiki/JeeLink
  3. Fhem: Günstige Temperatur- und Luftfeuchte-Sensoren von LaCrosse: https://blog.moneybag.de/fhem-guenstige-temperatur-und-luftfeuchte-sensoren-von-lacrosse/
  4. FHEM mit JeeLink: Luftfeuchte und Temperatur zum Low-Cost-Tarif messen: https://www.meintechblog.de/2015/01/fhem-mit-jeelink-luftfeuchte-und-temperatur-zum-low-cost-tarif-messen/
  5. FHEM Devicenamen: https://www.fischer-net.de/hausautomation/fhem/22-fhem-devicenamen.html


Erfahrungsbericht vom OpenStack Summit 2018 in Berlin

Der OpenStack Summit 2018 fand vom 13.11.-15.11. im CityCube Berlin statt. Es war der erste Summit in Deutschland und ich nutzte die Gelegenheit, den Summit erstmals zu besuchen. Hier folgt nun ein Erfahrungsbericht.

Motivation

Privat interessiere ich mich bereits seit vielen Jahren für diverse Themen rund um Open Source Hard- und Software. Beruflich bin ich aktuell in ein Projekt involviert, welches sich inhaltlich mit der Speicher-Lösung Ceph [1], [2] und der Cloud-Umgebung OpenStack [3], [4] beschäftigt.

Bei beiden handelt es sich um äußerst komplexe Open Source Technologien und die Einstiegshürde liegt entsprechend hoch. Dies liegt unter anderem daran, dass man hier kein fertiges Produkt bekommt, sondern eher ein Framework, welches sich flexibel für diverse Anwendungsfälle eignet.

Mit dem Summit bot sich eine gute Gelegenheit, die Community kennenzulernen, Vorträge über Fallstudien und Neuentwicklungen zu hören sowie an Workshops zur weiteren Entwicklung teilzunehmen.

Der Ceph Day Berlin

Im Vorfeld des OpenStack Summits fand ebenfalls im CityCube Berlin der Ceph Day [5] statt. Eröffnet wurde dieser von Sage Weil, welcher einen Überblick über den aktuellen Entwicklungsstand und neue Funktionen im kommenden Release gab.

Es folgten Vorträge über die neuen Management- und Monitoring-Funktionalitäten des überarbeiteten Dashboards, eine Fallstudie vom MeerKAT Radio-Teleskop und noch einige mehr. Begleitend wurden die Teilnehmer mit Kaffee, Kaltgetränken und kleinen Snacks versorgt.

Besonders gefallen haben mir die Vorträge über den Entwicklungsstand, die Neuerungen und wie man mit Upmap das Backfilling bzw. Rebalancing in den Griff bekommt. Darüber hinaus habe ich die Gelegenheit genutzt, in den Pausen mit anderen Teilnehmern, über deren Anwendungsfälle und  Erfahrungen mit Ceph zu sprechen. Auch in diesen Gesprächen gab es sowohl neue Einblicke, als auch Bestätigung für Dinge, die ich mir bisher aus der Literatur angelesen und in einem kleinen Proof of Concept erfahren habe.

Alles in allem war es ein guter Tag, welcher Lust auf die weiteren Tage machte.

Der OpenStack Summit

Am Dienstag startete dann der OpenStack Summit mit einer Reihe von Keynotes. Erste Erkenntnis: Da es auf diesem Summit nicht nur um OpenStack geht, wird sich die Veranstaltung einen neuen Namen geben und sich zukünftig Open Infrastructure Summit nennen.

Ganz grob lässt sich der Summit in das Vortragsprogramm, den Marktplatz und die Flurgespräche unterteilen.

Das Vortragsprogramm

Es gab ein reichhaltiges und abwechslungsreiches Vortragsprogramm [6]. Aufgrund des internationalen Publikums wurden sämtliche Vorträge in englischer Sprache gehalten.

Die Vorträge ließen sich erneut in Fallstudien, Projektvorstellungen, Neuigkeiten und Sponsoren-Vorträge unterteilen. Es gab ein breites Spektrum sowohl an Themen, als auch an deren Qualität.

Bei den vielen parallelen Strängen und interessanten Themen war es unmöglich, alle interessanten Vorträge zu besuchen. Zum Glück wurden sehr viele Vorträge aufgezeichnet, so dass man sie sich auch im Nachgang noch auf Video ansehen kann [7].

Eine interessante Erfahrung für mich war die Teilnahme an den Arbeitstreffen einiger Gruppen, welche sich unter anderem um die Weiterentwicklung der verschiedenen Deployment-Werkzeuge für OpenStack drehten. Die Teilnehmer hielten die Agenda in öffentlich zugänglichen Etherpads [8] fest und sammelten in diesen sowohl Fragen, Vorschläge als auch Antworten zu den gestellten Fragen.

Insgesamt wirkten diese Treffen zwar nicht sehr effizient, doch habe ich auch keine Idee, wie man ein Treffen mit so vielen Teilnehmern effizienter gestalten kann. Ich hoffe nun auf die Ergebnisse, da diese einem Neueinsteiger die Wahl eines geeigneten Deployment-Tools entscheidend vereinfachen könnten.

Der Marktplatz

Als Marktplatz wurde die Ausstellerfläche der Sponsoren im CityCube bezeichnet. Hier ergab sich die Gelegenheit, mit den Firmen in Kontakt zu treten, welche aktiv an der Entwicklung von Ceph und OpenStack beteiligt sind und ergänzende kommerzielle Lösungen und Support für diese anbieten.

Als SysAdmin habe ich mit großer Freude zur Kenntnis genommen, dass hier vor allem Techniker vor Ort waren und keine Vertriebsmitarbeiter. So konnte man sich darüber austauschen, was ein Produkt wirklich kann, wie es funktioniert und was davon zu erwarten ist. Und sind wir mal ehrlich, einen Preis dafür kann man immer noch anfragen. Dies gelingt in den meisten Fällen deutlich einfacher, als einen technisch versierten Ansprechpartner zu finden.

Selbstverständlich konnte man hier auch das ein oder andere Souvenir in Form eines T-Shirts, einer Tasse oder eines Huts abstauben. So war auch für Souvenir-Jäger gesorgt.

Flurgespräche

Flurgespräche nenne ich die vielen Gelegenheiten, die sich boten, um mit Menschen aus der Community Gespräche über verschiedenste Themen zu führen. Häufig sind diese informellen Gespräche genauso informativ, wenn nicht sogar noch erkenntnisreicher, als so mancher Vortrag.

Darüber hinaus besitzen sie selbstverständlich auch einen gewissen Unterhaltungswert. Am Dienstag Abend saß ich mit einem US-Amerikaner und einem Russen zusammen. Wir tauschten uns über kulturelle Unterschiede und Herangehensweisen beim Betrieb von Rechenzentren aus. Und wir hatten eine Menge Spaß dabei.

Grundsätzlich besitzen Ceph und OpenStack eine recht offene und freundliche Community. Man konnte schnell Anschluss finden und auch für die vermeintlich naiven Fragen eines Einsteigers nahm man sich Zeit, um diese ausführlich zu diskutieren.

Mein größter Dank gilt der Teilnehmerin oder dem Teilnehmer, welche/r mein verlorenes Portemonnaie gefunden und abgegeben hat. VIELEN DANK an die bzw. den Unbekannte/n!

Fazit

Ich persönlich ziehe ein gemischtes Fazit. Der Ceph Day sowie der OpenStack Summit waren toll. Sowohl das offizielle Programm als auch die Menschen waren spitze. Es war eine tolle Erfahrung, dabei zu sein. Ich hoffe, dass sich mir diese Möglichkeit noch einmal bietet.

Bezüglich Ceph und OpenStack habe ich viele Anwendungsszenarien kennengelernt und einen guten Einblick in diverse Projekte gewonnen. Deutlich wurde dabei jedoch auch, dass OpenStack noch lange nicht fertig ist und es vermutlich auch nie sein wird. Die Entwicklung wird in alle möglichen Richtungen weitergehen. Mit dabei sind eine Menge Haken, Ösen und Dinge, die einfach noch nicht ausgereift sind.

Doch muss man sich von diesen lebendigen Projekten nicht abschrecken lassen. Die Fallstudien bspw. des CERN, des MeerKAT oder des Human Brain Projects zeigen, dass man diese Projekte mit den richtigen Voraussetzungen sehr erfolgreich betreiben kann.

Was wir in unserer Einrichtung daraus machen, wird die Zukunft zeigen.


  1. Ceph Project Homepage: https://ceph.com/
  2. Ceph – Wikipedia: https://de.wikipedia.org/wiki/Ceph
  3. OpenStack Project Homepage: https://www.openstack.org
  4. OpenStack – Wikipedia: https://de.wikipedia.org/wiki/OpenStack
  5. Ceph Day Berlin 2018: https://ceph.com/cephdays/ceph-day-berlin/
  6. Full Schedule 2018: https://www.openstack.org/summit/berlin-2018/summit-schedule/full/
  7. Aufgezeichnete Tracks: https://www.openstack.org/summit/berlin-2018/summit-schedule/#day=2018-11-13&recorded=true
  8. Etherpad – Wikipedia: https://de.wikipedia.org/wiki/Etherpad

Linux: Hotplugged SATA/SAS/SCSI-Festplatten ohne Neustart erkennen

Unter VMware vSphere lassen sich neue Festplatten im laufenden Betrieb zu einer virtuellen Maschine hinzufügen. Damit man diese neuen Festplatten im Gastbetriebssystem auch verwenden kann, müssen sie dem Kernel jedoch noch bekannt gemacht werden. Wie dies ohne Neustart geht, möchte ich in diesem Artikel dokumentieren.

Um die neuen Festplatten zu erkennen, muss man den Kernel veranlassen die vorhanden Speicher-Adapter (SATA/SAS/SCSI) nach neuen Geräten abzusuchen. Leider habe ich dafür kein einfaches Kommando gefunden, weswegen ich folgendes Verfahren anwende.

Unter /sys/class/scsi_host findet man die dem Kernel bekannten Speicher-Adapter des Systems:

$ ls /sys/class/scsi_host
host0  host1  host2

Um einen Speicher-Adapter nach neuen Geräten abzusuchen, führt man folgendes Kommando auf dem entsprechenden Adapter aus:

# echo '- - -' > /sys/class/scsi_host/host0/scan

Ist man sich nicht sicher, an welchen Speicher-Adapter die neuen Festplatten angeschlossen wurden, können alle Adapter mit der folgenden kleinen Schleife abgesucht werden:

# for f in /sys/class/scsi_host/host*; do echo '- - -' > $f/scan; done

Anschließend tauchen die neuen Festplatten in der Ausgabe von parted -l oder fdisk -l auf und können wie gewohnt formatiert und genutzt werden.

Empfehlungen für Raumklimaüberwachung erwünscht

Eines der beliebtesten Hobby-, Wochenend- bzw. Smart-Home-Projekte scheint die Überwachung von Temperatur und Luftfeuchtigkeit im In- und Außenbereich zu sein. Eine Internetrecherche zu diesem Thema liefert eine schier überwältigende Anzahl an Treffern zurück.

Auch ich habe mich in der Vergangenheit bereits mit diesem Thema befasst (siehe Beitrag „Wer viel misst, misst viel Mist“). Leider habe ich mit meinen bisherigen Versuchen noch kein zufriedenstellendes Ergebnis erreicht und bei den zahllosen Lösungsmöglichkeiten, die ich im Internet gefunden habe, den Überblick verloren. Daher möchte ich im Folgenden meine Anforderungen beschreiben und euch um eure Mithilfe in Form von Empfehlungen für mögliche Lösungen bitten.

Zielsetzung

In jedem Raum eines Hauses sollen Messstationen mit Sensoren zur Messung von relativer Luftfeuchtigkeit und Temperatur platziert werden, welche die gemessenen Werte über eine Funkverbindung an ein zentrales Gerät zur weiteren Verarbeitung übertragen. Als zentrale Datenverarbeitungsstelle soll ein Raspberry Pi dienen, welcher die Daten speichert und auf einer Webseite visualisiert.

Das ganze System soll zur Umsetzung und Überwachung eines Lüftungskonzepts dienen.

Beschreibung der Anforderungen

Um die beschriebene Zielsetzung zu erreichen, soll jeder Sensor bzw. jede Messstation folgende Anforderungen erfüllen. Optionale Anforderungen werden dabei als solche gekennzeichnet.

  1. Die Messstation soll frei im Raum platziert werden können.
  2. Die Stromversorgung erfolgt über Batterie, Akku oder Powerbank. Ein Anschluss an eine Steckdose ist nicht erforderlich.
  3. Die Messstationen übertragen die Messwerte über eine Funkverbindung (z.B. WLAN, Bluetooth, 433 MHz, etc.) an eine zentrale Empfangsstation.
  4. Die Empfangsstation muss an einem Raspberry Pi betrieben werden können, da dieser die Messdaten weiterverarbeiten soll.
  5. Die Verwendung freier und offener Standards/Protokolle wird bevorzugt.
  6. Messbereich für die Temperatur mindestens 0-70 °C bei einer Genauigkeit von +/- 0,5 °C.
  7. Messbereich für die Luftfeuchtigkeit mindestens 0-100% relative Luftfeuchtigkeit (RH) bei einer Genauigkeit von +/- 5% RH.
  8. Fühler für Temperatur und Luftfeuchtigkeit können in einem gemeinsamen oder in getrennten Sensoren untergebracht sein.
  9. Frei konfigurierbares Messintervall von 10-86400s.
  10. Frei wählbare Anzahl Messstationen. Es müssen jedoch mindestens 32 Sensoren an die zentrale Empfangsstation angebunden werden können.
  11. Unterstützung von Linux zur Entwicklung und Programmierung der Lösung.

Optionale Anforderungen

  1. Die Messstationen können mit einem Display zum Ablesen der Messwerte ausgestattet werden.
  2. Die Displays verfügen über eine per Knopfdruck zuschaltbare Displaybeleuchtung.
  3. Die Messstationen besitzen einen guten WAF.

Vorhandene Infrastruktur und Fähigkeiten

Ein IP-basiertes Heimnetzwerk (IPv4 und IPv6) mit WLAN (2,4 und 5 GHz) ist vorhanden. Grundlegende Programmierkenntnisse in C und Python ebenso. Andere Sprachen stellen kein Ausschlusskriterium dar. Die grundlegende Fähigkeit zur Benutzung von Multimeter und Lötkolben ist ebenfalls vorhanden. Jedoch arbeite ich hier eher auf dem Niveau eines Grobschmieds denn eines Chirurgen. Ich bin also nicht traurig, wenn hier nur wenig gebastelt werden muss.

Die Lösung

Tja, ich habe noch keine. Falls ihr jedoch eine Lösung kennt oder sogar selbst umgesetzt habt, welche die oben genannten Anforderungen erfüllt, freue ich mich sehr, wenn ihr in den Kommentaren zu diesem Beitrag darüber berichten mögt und eure Empfehlungen und Erfahrungen hier teilt.