Was ist das Red Hat Offline Knowledge Portal und wie betreibt man es als systemd.service?
In diesem Tutorial erkläre ich, worum es sich beim Red Hat Offline Knowledge Portal handelt, unter welchen Voraussetzungen man es nutzen kann und wie man es als systemd.service
auf dem eigenen Rechner betreibt.
An einigen Stellen verweise ich auf die offizielle Red Hat Dokumentation, um das Tutorial nicht unnötig zu verlängern.
Was ist das Red Hat Offline Knowledge Portal?
Wie der Name suggeriert, handelt es sich um eine offline nutzbare Version des Red Hat Customer Portal und unserer Knowledge Base, Errata, Produktdokumentation, CVE-Datenbank und Red Hat Security Data API. Das folgende Bildschirmfoto zeigt die Startseite.

Ausgeliefert wird es als OCI-kompatibles Container-Image über registry.redhat.io
(Authentifizierung erforderlich). Informationen zum aktuellen Image und den Vorgängerversionen finden sich auch im Red Hat Ecosystem Catalog. Der Inhalt wird wöchentlich aktualisiert und als aktualisiertes Container-Image bereitgestellt.
Wofür soll das gut sein?
Als Systemadministratoren oder Technical Account Manager (TAM) möchten wir auch auf die im vorstehenden Abschnitt genannten Informationen zugreifen können, wenn wir uns in einer Umgebung befinden, in der ein Internetzugriff nicht möglich ist. Darunter fallen zum Beispiel:
- Vom Internet getrennte bzw. isolierte IT-Umgebungen
- Einige Züge der Deutschen Bahn
- Besprechungsräume und Büros mit bescheidener Signalstärke für das Diensttelefon
- Umgebungen, in denen der Zugriff auf die Online-Informationen ermüdend langsam ist
Ich persönlich möchte das Offline Knowledge Portal zum Beispiel gerne auf meinem Arbeitslaptop dabei haben, um unterwegs jederzeit auf die darin enthaltenen Informationen zugreifen zu können. Es ist so schnell, dass ich nicht mehr auf Zug-WLAN, langsame Mobilfunkverbindungen oder die langsame Online-Version (an einer Verbesserung wird gearbeitet) warten muss.
Wer kann das benutzen?
Folgende Voraussetzungen müssen erfüllt sein, um das Offline Knowledge Portal nutzen zu können:
- Es wird eine aktive Red Hat Satellite Subscription benötigt
- Gültige Customer Portal, Red Hat Developer oder Registry Service Account -Zugangsdaten
- Internetzugang, um das Container-Image herunterladen zu können
- Eine rootless Podman Umgebung in Version 4.4 oder aktueller, welche diese Anforderungen erfüllt
- Ein gültiger Offline Knowledge Portal access key
- Zugangsdaten für
registry.redhat.io
in einer Datei für eine automatisierte Anmeldung liegen vor; siehecontainer-auth.json(5)
für weitere Informationen
Wie kann man das dann benutzen?
Wer die schnelle Lösung sucht, findet diese in Chapter 1. Launching Red Hat Offline Knowledge Portal. Ich zeige an dieser Stelle, wie man das Offline Knowledge Portal als systemd.service
konfigurieren und dann wie einen normalen Dienst steuern kann. Im folgenden Codeblock findet ihr mein Podman Quadlet, mit dessen Hilfe der systemd.service
generiert wird. Die Datei habe ich in diesem Pfade abgelegt: ~/.config/containers/systemd/rhokp.container
.
:~$ cat .config/containers/systemd/rhokp.container
[Unit]
Description=Red Hat Offline Knowledge Portal
[Container]
AutoUpdate=registry
ContainerName=RHOKP
Image=registry.redhat.io/offline-knowledge-portal/rhokp-rhel9:latest
PublishPort=127.0.0.1:8080:8080
PublishPort=127.0.0.1:8443:8443
Pull=newer
Secret=rhokp_access_key,type=env,target=ACCESS_KEY
[Service]
# Extend Timeout to allow time to pull the image
TimeoutStartSec=900
[Install]
# Start by default on boot
# WantedBy=multi-user.target default.target
Erklärung des Abschnitts [Container]
:
AutoUpdate=registry
- Aktiviert automatische Updates für den Container
- Podman prüft dabei, ob in der Container-Registry eine neuere Version des Container-Images vorhanden ist, wenn der
podman-auto-update.timer
abgelaufen ist
ContainerName=RHOKP
- Gibt dem Container einen Namen
- Dieser wird in der Ausgabe von
podman ps
angezeigt
Image=registry.redhat.io/offline-knowledge-portal/rhokp-rhel9:latest
- Fully qualified container reference
- Der Tag
latest
ist zu verwenden, damit automatische Updates funktionieren
PublishPort=
- Da ich das Offline Knowledge Portal auf meinem Arbeitslaptop ausführe und nur selbst nutze, binde ich den Dienst an die IP-Adresse 127.0.0.1
- Soll der Dienst im Netzwerk angeboten werden, ist eine entsprechend erreichbare IP-Adresse zu verwenden
Pull=newer
- Mit dieser Pull-Policy wird bei jedem Container-Start geprüft, ob eine neue Image-Version in der Container-Registry verfügbar ist und lädt diese ggf. herunter
- Auf diese Weise muss ich nicht auf den Ablauf von
podman-auto-update.timer
warten - Es macht es mir einfacher, das Image auf meinem Laptop aktuell zu halten
Secret=rhokp_access_key,type=env,target=ACCESS_KEY
- Ich habe meinen Offline Knowledge Portal Access Key in einem Podman-Secret namens
rhokp_access_key
gespeichert, welches beim Container-Start in die UmgebungsvariableACCESS_KEY
gemappt wird - So stelle ich sicher, dass mein Zugangstoken nicht in der Ausgabe von
podman inspect
auftaucht oder mit dem Container in eine Datei gespeichert wird und ggf. unkontrolliert mein System verlässt
- Ich habe meinen Offline Knowledge Portal Access Key in einem Podman-Secret namens
Weitere Informationen finden sich in den Manpages podman-systemd.unit(5)
und podman-secret(1)
.
Bitte beachtet, dass ich die letzte Zeile mit WantedBy=
auskommentiert habe, da ich den Service auf meinem Laptop nur bei Bedarf starte. Wenn ihr den Dienst auf einem Server laufen lassen möchtet, der automatisch mitstartet, kommentiert die Zeile einfach ein.
Mit den folgenden Befehlen wird aus dem Quadlet ein systemd.service
generiert und gestartet.
:~$ systemctl --user daemon-reload
:~$ systemctl --user start rhokp.service
:~$ systemctl --user is-active rhokp.service
active
Zusammenfassung
- Ich muss mir nicht mehr den CLI-Befehl zum Start des Offline Knowledge Portal merken
- Ich habe es auf meinem Arbeitslaptop stets dabei und griffbereit
- Gesteuert wird es über vertraute
systemctl
-Befehle - Automatische Updates sind ebenfalls möglich
Wenn euch die Idee gefällt und ihr die Vorraussetzungen erfüllt, probiert es selbst aus.
PS: Es ist erfreulich schnell!