Archiv des Autors: Jörg Kastning

Erfahrungsbericht: Firmware-Update für GL.iNet GL-A1300 mit OpenWrt

Ich nutze einen GL.iNet GL-A1300 als Reise-Router. Bei diesem führe ich ein Firmware-Update durch und berichte hier von meiner Erfahrung damit.

Es handelt sich dabei um kein Tutorial oder eine Schritt-für-Schritt-Anleitung, sondern eher um eine persönliche Bewertung. Der Text enthält Links zu den verwendeten Quellen.

Warnung: Ein fehlgeschlagenes Firmware-Update kann euer Gerät unbenutzbar machen. Ich gehe in diesem Text nicht darauf ein, wie man ein Gerät nach einem fehlgeschlagenen Firmware-Update wiederherstellt. Wenn ihr diesem Artikel folgt, tut ihr dies auf eigene Gefahr.

IST-Zustand

Aktuell läuft mein Reise-Router mit der Firmware OpenWrt 24.10.5 r29087-d9c5716d1d / LuCI openwrt-24.10 branch 25.340.26705~d88390b. Zu dem Zeitpunkt, wo ich diesen Text schreibe, ist das Release 25.12.2 aktuell, welches am 27. März 2026 veröffentlicht wurde.

Die Geräteseite im OpenWrt-Wiki weist für mein Modell noch die 24.10.5 als aktuelle Firmware aus. Jedoch haben mich zwei meiner Arbeitskollegen darauf hingewiesen, dass ich besser den Firmware Selector verwenden solle, da dieser aktuelle Informationen beinhaltet, während das Wiki etwas hinterher hängt.

SOLL-Zustand

Die Ergebnisseite des OpenWrt Firmware Selector zeigt für mein Gerät an, dass die Firmware-Version 25.12.2 unterstützt wird.

Ergebnisseite des Firmware Selector für das Gerät GL.iNet GL-A1300.
Firmware-Version 25.12.2 untersützt den GL.iNet GL-A1300.

Dann soll dies die neue Firmware für meinen Reise-Router werden.

Meine Erwartungshaltung

Ich erwarte keinerlei Probleme, sodass ich nach den folgenden 5 Schritten fertig bin.

  1. Ich lade das Sysupgrade für mein Modell herunter.
  2. Ich lade das Sysupgrade im LuCI Web Interface hoch und starte das Firmware-Update.
  3. Der Reise-Router startet neu und lädt die neue Firmware-Version.
  4. Meine Konfiguration wird übernommen.
  5. Ich melde mich mit den bekannten Zugangsdaten an.

Der tatsächliche Verlauf

„Ich mach noch kurz ein Firmware-Update.“

Berühmte letzte Worte eines unbekannten Sysadmins.

Da es mir die Seite im folgenden Bild anbietet, erstelle ich vor dem Update noch ein Backup. Hierbei wird ein TAR-Archiv erzeugt, welches ich auf meinem Laptop speichere.

Seite im LuCI Web Interface für Flash operations. Die Seite bietet Optionen zum Erstellen eines Backups, zum Restore eines zuvor erstellten Backups und zum Upload eines Firmware-Images.
Seite im LuCI Web Interface zur Erstellung von Backups und Durchführung von Firmware-Updates.

Das folgende Bild zeigt den Dialog, der erscheint, nachdem das Firmware-Image hochgeladen wurde. Ich habe diesen einfach mit einem Klick auf Continue bestätigt.

Bestätigungsdialog zum Start des Firmware-Updates.

Während die Firmware auf das Gerät geflasht wird, blinkt die LED des GL-A1300 schnell. Leuchtet sie wieder dauerhaft, ist das Firmware-Update beendet. Ich verbinde mich erneut mit dem WLAN des Reise-Routers und lade die Seite neu.

Zwar läuft mein Reise-Router jetzt mit der neuen Firmware 25.12.2, jedoch sind die beiden Pakete Travelmate und AdBlock-Fast nicht mehr installiert. Ich vermute, dass dies damit zusammenhängt, dass sich bei dieser Firmware-Verstion der Paketmanager von opkg zu apk geändert hat. Ich verbinde mich daher per SSH zu meinem Router und installiere die Pakete über die Kommandozeile neu:

root@bifrost:~# apk add travelmate luci-app-travelmate luci-app-travelmate
…
root@bifrost:~# apk add gawk grep sed coreutils-sort

Nach einem anschließenden Neustart ist auch das Top-Level-Menü „Services“ im LuCI Web Interface wieder vorhanden. Und nicht nur der Menüpunkt auch die Konfiguration der Services ist noch vorhanden. Welch ein Glück.

Vielleicht aktiviere ich beim nächsten Firmware-Update die Option Include in backup a list of current installed packages at /etc/backup/installed_packages.txt. Dies kann mir ggf. die Neuinstallation erleichtern.

Fazit

Die Vorgehensweise beim Firmware-Update ist bei diesem Gerät in meinen Augen nicht ganz so einfach wie bei den gängigen Geräten der Internetdiensteanbieter aber auch kein Hexenwerk.

Ob es mit dem Wechsel des Paketmanagers zusammenhängt, dass ich die Pakete Travelmate und AdBlock-Fast neu installieren musste, kann ich nicht mit Sicherheit sagen. Ich werde das bei zukünftigen Updates mal im Auge behalten.

Nun werde ich erstmal die restlichen Geräte der Familie für die Nutzung des Reise-Routers konfigurieren.

Versteckte CLI-Optionen in Open-Source-Projekten: Fluch oder Segen?

Transparenzhinweis: Der Entwurf dieses Artikels wurde mithilfe der Mistral-KI Le Chat erstellt und von mir redigiert.

Versteckte CLI-Optionen: Warum Entwickler sie nutzen – und warum das umstritten ist

In der Welt der Open-Source-Software gibt es eine Praxis, die immer wieder für Diskussionen sorgt: das Verstecken von CLI-Optionen (Command Line Interface). Diese Optionen sind oft nicht in der offiziellen Dokumentation aufgeführt, werden aber dennoch im Code implementiert – sei es für Debugging-Zwecke, als Notlösung für spezielle Anwendungsfälle oder als „Geheimtipp“ für erfahrene Nutzer.

Ein Beispiel ist der Commit im xfsprogs-Projekt, der die Erstellung von XFS-Dateisystemen kleiner als 300 MB standardmäßig blockiert. Gleichzeitig wurde eine undokumentierte Option (--unsupported) eingeführt, um diese Beschränkung zu umgehen – allerdings ohne Hinweis in der Manpage mkfs.xfs(8) oder Hilfeausgabe.

Doch warum tun Entwickler das? Und welche Vor- und Nachteile hat diese Praxis für Nutzer, Maintainer und die Community?


Warum versteckte CLI-Optionen existieren

1. Flexibilität für Entwickler und Tester

  • Debugging & Testing: Versteckte Optionen ermöglichen es Entwicklern, spezielle Testumgebungen zu simulieren oder Fehler zu reproduzieren, ohne die Stabilität der Software für Endnutzer zu gefährden.
  • Beispiel: Im xfsprogs-Commit wird die 300-MB-Beschränkung für automatisierte Tests (fstests) deaktiviert, wenn bestimmte Umgebungsvariablen gesetzt sind. Das verhindert, dass Hunderte von Tests angepasst werden müssen.

2. Schnelle Lösungen für Nischenprobleme

  • Manchmal gibt es seltene Anwendungsfälle, die so selten sind, dass eine offizielle Unterstützung nicht sinnvoll erscheint.
  • Beispiel: Die Option --unsupported für mkfs.xfs, da diese im Normalbetrieb gefährliche Folgen, wie den Verlust von Leistung und Redundanz, haben können.

3. Vermeidung von Missbrauch

  • Manche Optionen sind potenziell gefährlich (z. B. das Umgehen von Sicherheitsprüfungen). Durch das Verstecken sollen nur Nutzer mit entsprechendem Wissen darauf zugreifen.

Die Kehrseite der Medaille: Warum versteckte Optionen problematisch sind

1. Mangelnde Transparenz

  • Open Source lebt von Transparenz und Gemeinschaft. Versteckte Optionen widersprechen diesem Prinzip: Nutzer wissen nicht, welche Möglichkeiten es gibt, und können die Software nicht voll ausschöpfen und damit nicht uneingeschränkt nutzen.
  • Frage: Wenn eine Option (nur in seltenen Ausnahmefällen) nützlich ist, warum sollte sie nicht dokumentiert werden?

2. Wartungsaufwand und „Technical Debt“

  • Undokumentierte Features werden schnell zu „Technical Debt“: Neue Entwickler kennen sie nicht, Nutzer stoßen zufällig darauf und die Optionen werden nie offiziell unterstützt, obwohl sie vielleicht weit verbreitet sind.
  • Beispiel: Im Linux-Kernel gibt es zahlreiche obskure Kernel-Parameter, die nur in Mailinglisten oder alten Foren erwähnt werden.

3. Frustration für Nutzer

  • Nutzer, die auf ein Problem stoßen, finden keine Lösung in der Dokumentation, obwohl diese vielleicht existiert. Das führt zu unnötigen Support-Anfragen oder Workarounds.
  • Beispiel: „Für eigene Tests möchte ich XFS-Dateisysteme kleiner 300 MB erstellen. Bis ich die Option --unsupported im Quelltext gefunden habe, war mir dies nicht möglich, ohne eine veraltete Version von xfsprogs zu nutzen.“

Deine Meinung zählt: Sollten versteckte CLI-Optionen abgeschafft werden?

Die Diskussion um versteckte Optionen ist auch eine Frage der Philosophie: Sollte Open-Source-Software maximale Freiheit bieten – auch auf Kosten von Komplexität? Oder sollte sie benutzerfreundlich sein und nur offizielle, getestete Features anbieten?

Was denkst du?

  • Hast du schon einmal von einer versteckten CLI-Option profitiert oder dich über das Fehlen einer Dokumentation geärgert?
  • Sollten Projekte wie xfsprogs alle Optionen offenlegen, selbst wenn sie offiziell nicht unterstützt und im IT-Betrieb gefährlich sind?
  • Oder ist es in Ordnung, wenn Entwickler „Hintertüren“ für spezielle Fälle einbauen?

Teile deine Erfahrung in den Kommentaren!

Erfahrungsbericht: Reise-Router GL.iNet GL-A1300 mit OpenWrt

In diesem Artikel erfahrt ihr, warum ich einen Reise-Router haben möchte, welchen ich aktuell mit welcher Firmware und zusätzlichen Paketen nutze und wie zufrieden ich damit bin.

Ich erhalte weder vom Hardwarehersteller noch von den verwendeten Projekten Zuwendungen irgendwelcher Art für diesen Bericht. Er gibt ausschließlich meine persönliche Meinung wieder.

Motivation

Wir sind eine kleine Familie mit einer ganzen Menge an WLAN-Geräten. Diese Geräte begleiten uns zu Hause wie unterwegs.

Daheim kümmerten sich in der Vergangenheit Pi-hole und heute OPNsense darum, dass wir von Werbung auf unseren Geräten so gut es geht verschont bleiben.

Erst, wenn wir unterwegs sind und z.B. Hotel-WLAN oder öffentliche Hotspots nutzen, fällt uns auf, wie kaputt das Internet eigentlich ist. Unser Kind findet vor lauter Werbung die Spiele auf dem Tablet nicht wieder und der übermäßige Werbemüll vermiest uns jeden Medienkonsum.

Ich habe keine Lust, jedes Gerät einzeln zu konfigurieren, um der Werbeindustrie Widerstand zu leisten. Daher möchte ich einen Reise-Router zu Hilfe nehmen. Die Idee ist, dass ich einen kleinen Router mit dem Hotel-WLAN verbinde, welcher dann für unsere Geräte ein WLAN aufspannt. Dieser Router stellt Dienste wie DHCP, DNS und einen Werbeblocker bereit, welche von allen verbundenen Geräten genutzt werden können.

Zusätzlich lässt sich mit dem Reise-Router auch die Einschränkung in manchen Hotels umgehen, wo sich nur ein einziges Gerät mit den bereitgestellten Zugangsdaten gleichzeitig mit dem Hotel-WLAN verbinden darf.

Dies kommt mir auch beruflich zugute, wo ich meist mit Handy und Laptop reise. So kann ich meine Geräte durch die im Reise-Router integrierte Firewall zusätzlich schützen. Ich kann sogar eine kleine, mobile Laborumgebung mithilfe des Routers aufbauen.

Slate Plus (GL-A1300)

Ich habe auf Mastodon um Empfehlungen gebeten und mit Kollegen gesprochen. Danke euch allen für eure Unterstützung. Am Ende habe ich mich für den Slate Plus (GL-A1300) von GL.iNet entschieden:

Erworben habe ich diesen bei einem großen Online-Gemischtwarenhändler für 76,99 Euro. Anschließend habe ich OpenWrt 24.10.5 via SSH darauf installiert. Das OpenWrt-Projekt ist ein Linux-Betriebssystem für eingebettete Systeme, wie den hier genannten GL-A1300.

Um OpenWrt auf einem Router zu installieren, sind fortgeschrittene Kenntnisse im Bereich der Systemadministration erforderlich. Es besteht trotz guter Software und Dokumentation die Gefahr, dass man sein Gerät bei diesem Vorgang unbrauchbar macht (bricked). Ich beschreibe die Installation hier nicht im Einzelnen und verweise auf das OpenWrt Wiki.

Travelmate, ein Verbindungsmanager für Reise-Router

Travelmate läuft auf OpenWrt und stellt eine Verbindung (Uplink) zum WLAN-Zugangspunkt/Hotspot z.B. des Hotels, der Ferienunterkunft her. Travelmate wird dann zum Zugangspunkt (Access Point) für unsere Geräte und bietet uns einen sicheren Zugang zum Internet.

Travelmate verwaltet alle Netzwerkeinstellungen, Firewall-Einstellungen, Verbindungen zum WLAN usw. und stellt automatisch eine (erneute) Verbindung zu konfigurierten APs/Hotspots her, sobald diese verfügbar sind.

Hilfe zur Installation und Konfiguration bietet die Travelmate-Seite im OpenWrt Wiki. Nach der Installation habe ich Travelmate genutzt, um meinen Reise-Router mit meinem WLAN zu Hause zu verbinden. Dies geht genauso einfach, wie einen Laptop in das WLAN zu integrieren.

Während ich die Zeilen für diesen Abschnitt schreibe, bin ich mit meinem Laptop mit dem WLAN des GL-A1300 verbunden, welcher über mein Heim-WLAN mit dem Internet verbunden ist. Das folgende Bild dient der Veranschaulichung des Testaufbaus:

Das Bild zeigt von links nach rechts die Symbole für einen Laptop, einen WLAN-Router der den Reise-Router GL-A1300 repräsentiert, ein WLAN-Symbol für das Heimnetzwerk, eine Firewall und ein Symbol für das Internet.
Testaufbau mit dem Reise-Router GL-A1300

AdBlock-Fast

AdBlock-Fast ist ein leistungsstarker Werbeblocker-Dienst für OpenWrt, der sich in Dnsmasq, SmartDNS und Unbound integrieren lässt. Er unterstützt das parallele Herunterladen und Verarbeiten von Remote-Block- und Allow-Listen und optimiert diese in effiziente, mit Resolvern kompatible Formate.

Die Installation verlief wie beschrieben. Ich habe wahllos einige Block-Listen heruntergeladen und aktiviert. Einen Test werde ich auf meiner nächsten Dienstreise durchführen.

Erster Einsatz im Hotel

Der erste Praxistest erfolgte auf Dienstreise im Hotel.

Im Hotelzimmer wird der Reise-Router über ein USB-C-Kabel und ein Standards-USB-Ladegerät mit Strom versorgt. Ich starte meinen Laptop und verbinde mich mit dem WLAN des Reise-Routers. Anschließend öffne ich das Webinterface des Reise-Routers in meinem Webbrowser. Die Standards-IP-Adresse von OpenWrt lautet 192.168.1.1. Unter Services/Travelmate/Wireless Stations scanne ich nach verfügbaren Netzwerken und stelle eine Verbindung zum offenen Hotel-WLAN her.

Das Hotel bietet ein offenes WLAN ohne Authentifizierung an. Um in das Internet zu gelangen, muss man jedoch zuerst die Nutzungsbedingungen auf einer Portalseite bestätigen. Dies erledige ich über mein Telefon, welches ich mit dem WLAN des Reise-Routers verbinde. Die Bestätigungsseite wird hier einmalig angezeigt. Alle weiteren Geräte können das Internet nutzen, ohne dies nochmals separat bestätigen zu müssen. Denn aus Sicht des Hotel-WLANs ist nur ein WLAN-Client verbunden.

Um den AdBlocker zu testen, habe ich eine Runde in meiner Skat-App gespielt. Ohne AdBlocker sieht man hier sein Blatt vor lauter Werbung nicht. Auch hier funktioniert alles wie gewünscht.

Fazit

Einzig die Firmware auf die Hardware zu flashen erfordert fortgeschrittene Kenntnisse. Die anschließende Nutzung des Reise-Routers ist unkompliziert.

Die Stromversorgung über USB macht das Gerät einfach und flexibel einsetzbar. Die Verbindungsqualität ist gut und der Werbeblocker arbeitet wie erwartet. Evtl. werde ich noch das Wireguard-VPN testen. Dies könnte nützlich sein, um mich zu meinem Heimlabor zu verbinden.

Als nächstes werde ich alle unsere WLAN-Gräte für die Nutzung des Reise-Routers konfigurieren, so dass wir das nicht unterwegs tun müssen.

Vorfreude auf die Chemnitzer Linux-Tage 2026

Am kommenden Wochenende ist es wieder so weit. Mit den Chemnitzer Linux-Tagen 2026 findet die größte Open Source Community Konferenz im deutschsprachigen Raum statt. Und ich freue mich auf ein Wiedersehen mit guten Bekannten und darauf neue Gesichter aus der FOSS-Gemeinschaft kennenzulernen.

Aus dem vollgepackten Programm habe ich mir folgenden Fahrplan zusammengestellt:

Neben dem offiziellen Programm freue ich mich natürlich auf jede Menge interessanter Gespräche mit Gleichgesinnten. Bleibt gesund und bis zum Wochenende in Chemnitz.

Von scrartcl zu typst

In der Vergangenheit habe ich viele Dokumente, wie z.B. Hausarbeiten, Aufsätze, Briefe, Dokumentationen und Präsentationen mit LaTeX erstellt. In der Vorbereitungsphase für einen Vortrag haben Dirk und ich beschlossen, Typst zu lernen.

Wie ich Briefe mit Typst statt LaTeX schreibe, habe ich bereits beschrieben. Hier schreibe ich, wie ich meine Notfalldokumentation von scrartcl zu typst migriert habe.

Ich habe kein Werkzeug zur automatischen Konvertierung genutzt, da ich zu faul war, ein solches erst zu finden und zu erlernen. Stattdessen habe ich Vim genutzt und die entsprechenden Umgebungen ersetzt. Das war in diesem Fall in Ordnung, kann aber bei komplexeren Dokumenten schnell in Arbeit ausarten. Allerdings werden Automaten bei zunehmend komplexen Projekten ebenfalls an ihre Grenzen kommen.

Im Folgenden findet ihr einen kurzen Vergleich der Syntax-Elemente.

Die Preamble (Vorspann)

Die Preamble ist der Teil des LaTeX-Dokuments, der vor dem eigentlichen Inhalt steht. Hier werden grundlegende Einstellungen und Pakete definiert, die während der Dokumenterstellung verwendet werden. Die Preamble beginnt immer mit dem Befehl \documentclass und endet mit dem Befehl \begin{document}.

Quelle: https://www.namsu.de/LaTeX-Buch/kap2-2.html

Die LaTeX-Preamble meiner Dokumentation sieht wie folgt aus:

\documentclass[a4paper,parskip=half,numbers=noenddot]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8x]{inputenc}
\usepackage{lmodern}
\usepackage{graphicx}
\usepackage{subcaption}
\usepackage[ngerman]{varioref}
\usepackage{pdfpages}
\usepackage{hyperref}

%opening
\title{Dokumentation des Heimnetzwerks in der Triftenstr. 10}
\author{Jörg Kastning}

\begin{document}

Der Vorspann meiner typ-Datei zum Vergleich:

#set page(paper: "a4", numbering: "1")
#set heading(numbering: "1.1")
#set text(lang: "de")
#set document(
  title: [Dokumentation des Heimnetzwerks in der Triftenstr. 10],
  author: "Jörg Kastning"
)

Die Syntax-Elemente werden in der Typst-Referenz erklärt, z.B.:

Die Referenz ist ständig in einem Browser-Tab geöffnet, wenn ich mit typst arbeite. Dies wird so bleiben, bis ich die am häufigsten verwendeten Funktionen auswendig kenne.

Grundsätzlich halte ich mich an das KISS-Prinzip und den Grundsatz: Form follows function (Deutsch: die Form folgt der Funktion bzw. dem Inhalt). Ich möchte mich so viel wie möglich mit dem Inhalt beschäftigen und möglichst wenig Zeit mit dem Satz bzw. der Formatierung zubringen.

Abbildungen und Tabellen

Zu den häufigsten Umgebungen zählen vermutlich Abbildungen und Tabellen. In der LaTeX-Version habe ich diese wie folgt gesetzt:

\begin{tabular}{ll}
    Vertragsnummer  & 12345\\
    Kundennummer  & 98765432\\
    Tarif & zuhause100\\
\end{tabular}

\begin{figure}
    \centering
    \includegraphics[scale=0.3]{bilder/bild.jpg}
    \caption{Meine super Bildunterschrift}
    \label{fig:bild}
\end{figure}

\begin{figure}
    \begin{subfigure}[c]{0.5\textwidth}
        \includegraphics[width=0.9\textwidth]{bilder/front.jpg}
        \subcaption{Frontansicht}
    \end{subfigure}
    \begin{subfigure}[c]{0.5\textwidth}
        \includegraphics[width=0.9\textwidth]{bilder/rear.jpg}
        \subcaption{Rückansicht}
    \end{subfigure}
    \caption{Das sind zwei tolle Abbildungen.}
    \label{fig:bild2}
\end{figure}

Für das LaTeX-Konstrukt subfigure habe ich keinen entsprechenden Ersatz in typst gefunden. Ich setze dies in einzelnen Abbildungen hintereinander um. Die Umgebungen sehen nun wie folgt aus:

#figure(
  table(
    columns: 2,
    stroke: (x: none),
    [Vertragsnummer], [12345],
    [Kundennummer], [98765432],
    [Tarif], [zuhause100],
  ),
  caption: [Vertragsinformationen],
) <referenz-name>

#figure(
  image("bilder/bild.jpg", width: 30%),
  caption: [Meine super Bildunterschrift],
) <referenz_name2>

Tabellen und Bilder werden beide in einer figure-Umgebung gesetzt. Dies macht in meinen Augen Sinn, da beide Umgebungen in der Regel mit einer Über- bzw. Unterschrift versehen werden, häufig zentriert gesetzt und mit einer Referenz versehen werden.

Ich habe mich noch nicht ganz an die Terminologie gewöhnt. Typst bezeichnet figure und table sowie die meisten anderen Elemente als Funktionen und nicht als Umgebungen.

Aufzählungen, Links und Listen

Für nummerierte und unsortierte Listen in LaTeX siehe Abschnitt 3.18. Listen im KOMA-Script Scrguide. Für typst siehe enum und list.

Für Links steht in LaTeX das mächtige Paket hyperref bereit. In typst gibt es das link-Element.

Fazit

Mir erscheint die typst-Syntax etwas einfacher, dafür weniger flexibel zu sein. Was mir besser gefällt, mag ich noch nicht sagen, da ich noch unentschlossen bin.

Das mit LaTeX erstellte PDF sieht in meinen Augen perfekt aus. Das mit typst erstellte PDF sieht ebenfalls gut aus und ist leserlich. Es reicht in meinen Augen jedoch nicht an die LaTeX-Ausgabe heran.

In typst ist meine Preambel kürzer, die Syntax etwas einfacher. Dafür war es mir nicht so einfach möglich, die Schriftart zu ändern. Diese hätte ich erst in meine typst-Binärdatei mit einkompilieren müssen. Ein Vorgang, der mir entschieden zu aufwendig ist.

Probiert es am besten aus und entscheidet selbst, welches Ergebnis euch besser gefällt. Ich vermag (noch) nicht zu sagen, ob mir LaTeX oder typst insgesamt besser gefallen. Werft ggf. zuerst einen Blick in den Guide for LaTeX Users.

Welche ansible-core-Version und welche Collections sind in welchem Ansible Execution Environment enthalten?

Das sind ja gleich mehrere Fragen auf einmal. Doch ich denke, dass man diese gut in einem Beitrag beantworten kann.

Für die Antwort auf die Frage was Execution Environments sind, verweise ich auf die offizielle Dokumentation, da dies sonst den Umfang dieses Beitrags sprengen würde. Kurz gesagt handelt es sich dabei um Container-Images, welche unterschiedliche Versionen von ansible-core und diverse Ansible Collections enthalten.

Ich verwende für die folgenden Beispiele die Execution Environments aka Container-Images ee-minimal-rhel9 und ee-supported-rhel9 von registry.redhat.io/ansible-automation-platform-26.

Option 1: Mit Podman schnell und simpel zum Ziel

Folgender Code-Block zeigt den gesuchten Inhalt für das Minimal-Image an:

[jkastning@aap-1 ~]$ podman run --rm registry.redhat.io/ansible-automation-platform-26/ee-minimal-rhel9:latest ansible --version
ansible [core 2.16.14]
  config file = None
  configured module search path = ['/home/runner/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.11/site-packages/ansible
  ansible collection location = /home/runner/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/local/bin/ansible
  python version = 3.11.13 (main, Aug 21 2025, 00:00:00) [GCC 11.5.0 20240719 (Red Hat 11.5.0-11)] (/usr/bin/python3.11)
  jinja version = 3.1.6
  libyaml = True
[jkastning@aap-1 ~]$ podman run --rm registry.redhat.io/ansible-automation-platform-26/ee-minimal-rhel9:latest ansible-galaxy collection list
usage: ansible-galaxy [-h] [--version] [-v] TYPE ...

Perform various Role and Collection related operations.

positional arguments:
  TYPE
    collection   Manage an Ansible Galaxy collection.
    role         Manage an Ansible Galaxy role.

options:
  --version      show program's version number, config file location,
                 configured module search path, module location, executable
                 location and exit
  -h, --help     show this help message and exit
  -v, --verbose  Causes Ansible to print more debug messages. Adding multiple
                 -v will increase the verbosity, the builtin plugins currently
                 evaluate up to -vvvvvv. A reasonable level to start is -vvv,
                 connection debugging might require -vvvv. This argument may
                 be specified multiple times.
ERROR! - None of the provided paths were usable. Please specify a valid path with --collections-path 

Dieses Image enthält ansible-core in Version 2.16.14 und keinerlei Ansible Collection. Das ee-suported-rhel9 bringt im Vergleich dazu eine ganze Reihe an Collections mit:

[jkastning@aap-1 ~]$ podman run --rm registry.redhat.io/ansible-automation-platform-26/ee-supported-rhel9:latest ansible --version
ansible [core 2.16.14]
  config file = None
  configured module search path = ['/home/runner/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.11/site-packages/ansible
  ansible collection location = /home/runner/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/local/bin/ansible
  python version = 3.11.13 (main, Aug 21 2025, 00:00:00) [GCC 11.5.0 20240719 (Red Hat 11.5.0-11)] (/usr/bin/python3.11)
  jinja version = 3.1.6
  libyaml = True
[jkastning@aap-1 ~]$ podman run --rm registry.redhat.io/ansible-automation-platform-26/ee-supported-rhel9:latest ansible-galaxy collection list

# /usr/share/ansible/collections/ansible_collections
Collection                      Version     
------------------------------- ------------
amazon.aws                      9.5.1       
ansible.controller              4.7.6       
ansible.eda                     2.10.0      
ansible.hub                     1.0.1       
ansible.netcommon               8.1.0       
ansible.network                 5.0.0       
ansible.platform                2.6.20251106
ansible.posix                   2.1.0       
ansible.scm                     3.0.0       
ansible.security                5.0.0       
ansible.snmp                    3.0.0       
ansible.utils                   6.0.0       
ansible.windows                 3.2.0       
ansible.yang                    3.0.0       
arista.eos                      12.0.0      
cisco.intersight                2.2.0       
cisco.ios                       11.1.1      
cisco.iosxr                     12.0.0      
cisco.nxos                      11.0.0      
cloud.common                    5.0.0       
cloud.terraform                 4.0.0       
hashicorp.terraform             1.1.0       
hashicorp.vault                 1.0.0       
junipernetworks.junos           11.0.0      
kubernetes.core                 6.1.0       
microsoft.ad                    1.9.2       
microsoft.iis                   1.0.3       
redhat.amq_broker               2.3.4       
redhat.amq_streams              1.0.0       
redhat.data_grid                1.3.3       
redhat.eap                      1.5.7       
redhat.insights                 1.3.0       
redhat.jbcs                     1.1.2       
redhat.jws                      2.1.1       
redhat.openshift                5.0.0       
redhat.openshift_virtualization 2.2.3       
redhat.redhat_csp_download      1.2.2       
redhat.rhbk                     3.0.1       
redhat.rhel_idm                 1.15.1      
redhat.rhel_system_roles        1.95.7      
redhat.rhv                      2.4.2       
redhat.runtimes_common          1.2.2       
redhat.sap_install              1.7.1       
redhat.satellite                5.5.0       
redhat.satellite_operations     3.0.0       
redhat.sso                      2.0.0       
sap.sap_operations              2.2.0       
servicenow.itsm                 2.11.0      
splunk.es                       4.0.0       
trendmicro.deepsec              4.0.0       
vmware.vmware                   2.3.0       
vmware.vmware_rest              4.8.1

Option 2: Ansible Navigator

Alternativ kann man das Container-Image aka Execution Environment Image (eei) auch mit dem ansible-navigator untersuchen. Der Befehl ansible-navigator images --eei ee-supported-rhel9 lädt das gewünschte Image bei Bedarf herunter und öffnet einen interaktives Text-Interface, welches alle lokal vorhandenen Images auflistet. Das folgend Bild zeigt eine Ansicht von meinem Labor-PC:

Auflistung der vorhandenen Container-Images im ansible-navigator

Durch drücken der Taste ‚4‘ wird das Image ee-supported-rhel9 ausgewählt:

Auswahlmenü für das Image: ee-supported-rhel9:latest

Wählt man hier die ‚2‘ muss man sich in Geduld üben. Denn die Analyse des Images kann in der Tat etwas dauern. In diesem Fall waren es ganze 2 Minuten!

Auf Computer zu warten kann ich wirklich nicht gut leiden.

Hat man die Wartezeit überlebt, wird man mit folgender Ansicht belohnt:

Ansicht der enthaltenen Ansible Collections und der Version von ansible-core

Fazit

Dieser Beitrag hat zwei Optionen gezeigt, wie man sich die Version von ansible-core und die in einem Execution Environment Image enthaltenen Ansible Collections anzeigen lassen kann.

Ich persönlich bevorzuge Option 1, da diese deutlich schneller zu einem Ergebnis führt, während man sich bei Option 2 für mehrere Minuten gedulden muss. Diese Geduld benötigt man übrigens auch für das Image ee-minimal-rhel9, welches gar keine Collections enthält. Hier betrug die Wartezeit immerhin mehrere Sekunden.

Mir gefällt das Fediverse

Das Fediverse, unendliche Weiten.…

Für mich besteht das Fediverse aus:

Ich freue mich, Teil eines dezentral organisierten, förderierten, sozialen Netzwerks zu sein und nicht ein Produkt für gewinnorientierte Unternehmen. Es gefällt mir, dass die Dienste und Plattformen im Fediverse frei von Werbung sind und die Inhalte durch die Teilnehmer:innen gestaltet werden. Hier wird meine Zeitleiste nicht von Algorithmen bestimmt, die der jeweilige Anbieter kontrolliert und damit vorgibt, was ich zu sehen bekomme und was nicht. Hier kann ich mir meine Filterblase selbst zusammenstellen.

Das Fediverse mag kleiner sein, als die komerziellen Plattformen. Durch seine dezentrale Struktur mag es nicht allen Menschen gleichermaßen zugänglich sein, die es gewohnt sind zentrale Dienste weniger Anbieter zu nutzen und welche die Föderation verwirrend finden. Dies macht mir jedoch nichts. Ich fühle mich hier wohl.

Und Du? Kennst du das Fediverse? Nutzt Du es selbst? Welche Dienste gefallen Dir gut und welche weniger? Lass es mich doch gerne in den Kommentaren wissen.

Typst aktualisieren

Diese kurze Dokumentation dient mir zur Erinnerung, wie ich die Typst-Installation auf meinem System aktualisiere.

  1. Download Release Tarball typst-x86_64-unknown-linux-musl.tar.xz von https://github.com/typst/typst/releases
  2. Entpacke das Archiv mit tar xJf Downloads/typst-x86_64-unknown-linux-musl.tar.xz typst-x86_64-unknown-linux-musl/typst
  3. Verschiebe die Binärdatei in mein lokales bin-Verzeichnis: mv typst-x86_64-unknown-linux-musl/typst ~/bin/

Alternativ kann die Binärdatei auch unter /usr/local/bin abgelegt werden.

Warum und wie ich KeePass benutze

Ich könnte den Spiess ja umdrehen, wieso nutzt Du Keepass und nimmst die Unbequemlichkeit in Kauf?

Aus einem privaten Matrix-Chat mit einer Person im Internet.

Nun gut, ich möchte dieser Person den Artikel nicht schuldig bleiben. ;-)

Warum ich KeePass benutze

Dies hat wie so oft historische Gründe. Die erste Referenz zu KeePass in diesem Blog ist vom 8. Januar 2011. Etwas später, am 20.01.2011, hatte ich dem Thema einen eigenen Artikel gewidmet: Sichere Passwörter und wie man sie verwaltet. Der Artikel hat in meinen Augen nicht an Aktualität verloren, mit zwei kleinen Ausnahmen:

Bei der Wahl der KeePass-Projekte habe ich mich von diesem Artikel von Mike Kuketz beeinflussen lassen.

Ich bin privat dabei geblieben, weil ich die Nutzung gewohnt bin und bisher keinen Grund zu einem Wechsel sehe. Beruflich nutze ich inzwischen Bitwarden, da dies von meinem Arbeitgeber zur Verfügung gestellt wird und ich somit ein offiziell geprüftes und genehmigtes Werkzeug für dienstliche Zwecke verwende. Darüber hinaus finde ich Bitwarden genauso gut wie KeePassXC.

Wie ich KeePass benutze

KeePassXC ist auf allen meinen Geräten des Typs Laptop, Desktop-PC/Heimserver installiert. Auf meinem Tablet und Smartphone nutze ich KeePassDX, welcher auch im F-Droid-Store verfügbar ist.

Die KeePass-Datenbank halte ich mit einer selbstgehosteten Nextcloud auf allen Geräten synchron bzw. stelle sie dort zur Verfügung. Auf PC und Laptop ist dabei permanent eine lokale Kopie der Datenbank verfügbar. Auf dem Smartphone/Tablet steht diese nur zeitlich begrenzt zur Verfügung, nämlich bis der Android-Dateimanager der KeePassDX-App den Zugriff auf die gecachte KeePass-Datenbank-Datei entzieht bzw. diese aus dem Cache entfernt wird. Schaut für weitere Hinweise hierzu bitte in die englischsprachige FAQ des Projekts.

Der Ablauf auf dem Smartphone sieht bei mir so aus:

  1. Nextcloud-App öffnen.
  2. KeePass-Datenbank auswählen und mit KeePassDX öffnen.
  3. Datenbank-Passwort eingeben und mit der üblichen Nutzung fortfahren.

Sollte ich mein Telefon oder Tablet mal verlieren, widerrufe ich den Access-Token in meiner Nextcloud, womit das jeweilige Gerät den Zugriff auf die Nextcloud und damit auf die KeePass-Datenbank verliert. Wichtig: Dies minimiert das Risiko, dass mir eine Kopie der KeePass-Datenbank verloren geht, bietet aber keinen 100%-igen Schutz. Bei der Offline-Funktionalität von Bitwarden schätze ich das Risiko ähnlich ein.

Um die Sicherheit noch etwas zu steigern, kann ich eine Funktion zur Fernlöschung nutzen, mit der die Inhalte von meinem Gerät gelöscht werden. Achtung: Dies funktioniert nur, wenn das Gerät mit dem Internet verbunden ist.

Aktuell entsperre ich die KeePass-Datenbank nur mit einem Passwort. Ich habe mir angesehen, wie man einen YubiKey als zusätzlichen Faktor nutzen kann. Leider wurde mein YubiKey in der Kombination YubiKey 5 NFC, Fedora 43 und KeePassXC nicht erkannt. Ich habe das Troubleshooting nach kurzer Zeit abgebrochen und beschlossen, dass der YubiKey und die dazugehörige Software für Linux aus der Hölle kommen und das Thema in eine Schublade zur E-Mail-Verschlüsselung gesperrt. Falls euch diese Problem bekannt vorkommt und ihr eine einfache Lösung dafür habt, bitte lasst mich wissen, welchen Zauber ihr gewirkt habt.

Browsererweiterung vs. Zwischenablage

Ich nutze die KeePassXC-Browser-Erweiterung, um mir das Leben etwas zu erleichtern und Login-Formulare per Klick ausfüllen zu lassen. Natürlich besteht hierbei das Restrisiko, dass durch eine Schwachstelle im Browser oder der Erweiterung die Login-Informationen abgefangen werden können. Dessen bin ich mir bewusst.

100%-ige Sicherheit gibt es nicht. Wenn sich ein Keylogger auf meinem System befindet oder eine Schadsoftware, welche die Zwischenablage mitschneidet, verliere ich die Informationen ebenfalls.

Da ich dank Passwort-Manager für alle Dienste unterschiedliche Passwörter und wo möglich Mehrfaktor-Authentisierung verwende, hält sich der Schaden selbst dann in Grenzen, wenn einzelne Passwörter kompromittiert werden.

Da ich kein IT-Sicherheitsexperte bin, möchte ich es hiermit aber auch gut sein lassen.

Viele Grüße ins Internet und an die Personen an den heimischen Datensichtgeräten.

Briefe mit Typst statt LaTeX schreiben

In der Vergangenheit habe ich die LaTeX-Klasse scrlttr2 u.a. mit der latex-briefvorlage-din-5008 genutzt, um meine Briefe zu schreiben. Ich finde diese Vorlage auch heute noch sehr gut.

In der Vorbereitungsphase für einen Vortrag haben Dirk und ich beschlossen, Typst zu lernen. Auf der Suche nach einer Briefvorlage habe ich diese gefunden:

Mit dieser Vorlage kann ich sehr schnell, schlichte und in meinen Augen professionelle Briefe erstellen. Ich bin mit dem Ergebnis sehr zufrieden.

Versteht mich nicht falsch, ich finde an LaTeX nichts schlecht. Da ich jedoch keine längeren Texte mehr damit schreibe, erscheint es mir unnötig komplex, um Briefe und Präsentationen zu erstellen. Vergleicht man den Speicherbedarf, macht Typst auch hier einen schlanken Eindruck:

$ du -sh /usr/local/texlive
7,0G	/usr/local/texlive
$ du -sh ~/bin/typst 
41M	/home/tronde/bin/typst

Unter URL https://github.com/kaarmu/typst.vim habe ich ein Vim-Plugin gefunden, so dass ich meinen favorisierten Editor weiterverwenden kann.

Ich schreibe LaTeX noch nicht ab. Aktuell stehen die Zeichen jedoch auf Typst.