Ubuntu 25.10 ist erschienen
Die neueste Ubuntu Version 25.10 Questing Quokka ist erschienen.
Die neueste Ubuntu Version 25.10 Questing Quokka ist erschienen.
In diesem Tutorial zeige ich euch, wie ihr eine automatische Aktualisierung für Container in rootless-Podman-Umgebungen konfigurieren und diese Container als systemd
-Services verwalten könnt.
Das Tutorial gliedert sich in folgende Abschnitte:
systemd
-Service mit Auto-Update-FunktionWer sich nicht für die möglichen Anwendungsfälle interessiert und lieber gleich starten möchte, kann den ersten Abschnitt überspringen. Die übrigen Abschnitte sollten in der angegebenen Reihenfolge gelesen werden.
Um diesem Tutorial folgen zu können, benötigt ihr einen Host mit einer rootless-Podman-Umgebung. Podman muss dabei in der Version >= 3.3 verfügbar sein. In der folgenden Liste findet ihr einige Links, die euch helfen, eine solche Umgebung aufzusetzen.
Darüber hinaus solltet ihr Manpages lesen können.
Das Betriebssystem spielt eine untergeordnete Rolle, da wir durch die Verwendung von Containern die Anwendung vom Betriebssystem entkoppeln. Alle zur Ausführung der Anwendung notwendigen Abhängigkeiten sind im Container-Image enthalten.
Uptime Kuma ist eine schlanke und schnelle Monitoring-Anwendung, welche unter anderem als Container-Image bereitgestellt wird. Ich habe die Anwendung als Beispiel für dieses Tutorial ausgewählt, da ich die Anwendung selbst nutzen möchte und so Synergieeffekte nutzen kann.
Wer ein anderes Container-Image nutzen möchte, muss in den folgenden Beispielen louislam/uptime-kuma:latest
durch den fully qualified container name des zu nutzenden Images ersetzen.
Für die Konfiguration werden die auf dem System verfügbaren Podman-Manpages benutzt.
Bei den folgenden Schritten habe ich mich am Beispiel aus podman-auto-update(1) orientiert. Ich zeige zuerst den jeweils auszuführenden Befehl in einem Code-Block, gefolgt von einer Erläuterung der genutzten Optionen.
$ podman volume create uptime-kuma
uptime-kuma
Um Daten persistent speichern zu können, müssen diese außerhalb des Containers abgelegt werden. Der dargestellte Befehl erzeugt ein Podman-Volume mit dem Namen „uptime-kuma“.
Mit dem folgenden Befehl lassen sich detaillierte Informationen zum gerade erstellten Volume anzeigen:
$ podman volume inspect uptime-kuma
[
{
"Name": "uptime-kuma",
"Driver": "local",
"Mountpoint": "/home/tronde/.local/share/containers/storage/volumes/uptime-kuma/_data",
"CreatedAt": "2023-08-22T20:52:06.477341481+02:00",
"Labels": {},
"Scope": "local",
"Options": {},
"MountCount": 0,
"NeedsCopyUp": true,
"NeedsChown": true
}
]
Der Schlüssel Mountpoint
enthält den Pfad im lokalen Dateisystem, in dem das Volume erstellt wurde.
Manpages zum Nachschlagen:
$ podman run --label "io.containers.autoupdate=registry" -d -p 3001:3001 -v uptime-kuma:/app/data:Z --name=uptime-kuma docker.io/louislam/uptime-kuma:latest
Trying to pull docker.io/louislam/uptime-kuma:latest...
Getting image source signatures
Copying blob d7ca72974892 done
Copying blob 475646a04a73 done
Copying blob 1d496c24aec8 done
Copying blob 6a3727d8681d done
Copying blob b00c91ba9805 done
Copying blob ddade83992f9 done
Copying blob b8454ed537a7 done
Copying blob 849e609eff67 done
Copying blob f861188db6a1 done
Copying blob 5f3c3e6d7f1c done
Copying blob 4f4fb700ef54 skipped: already exists
Copying blob 68b7bcf7c878 done
Copying config fb3a3565b2 done
Writing manifest to image destination
Storing signatures
ad7b049d9b84962311f5bafb5329f59961d8a031e54a571f079b8243ea8059ee
podman run
ist das Kommando, mit dem ein neuer Container gestartet wird--label "io.containers.autoupdate=registry"
gibt an, dass Podman die Remote-Registry prüft, ob dort ein aktualisiertes Image vorhanden ist; dieses Label ist Voraussetzung, um die Auto-Update-Funktion nutzen zu können-d
wird der Container im Hintergrund gestartet und die Container-ID auf STDOUT ausgegeben-p 3001:3001
wird der Host-Port 3001 mit dem Port der Anwendung (ebenfalls 3001) im Container verbunden-v uptime-kuma:/app/data:Z
hängt das im vorhergehenden Schritt erstellte Podman-Volume in das Verzeichnis /app/data
innerhalb des Containers ein; :Z
sorgt dafür, dass der SELinux-Kontext korrekt gesetzt wird--name=uptime-kuma
spezifiziert den Namen des Containers; dieser ist etwas leichter zu merken als die Container-IDdocker.io/louslam/uptime-kuma:latest
Manpages zum Nachschlagen:
$ podman generate systemd --name --new uptime-kuma
# container-uptime-kuma.service
# autogenerated by Podman 4.4.1
# Tue Aug 22 21:29:46 CEST 2023
[Unit]
Description=Podman container-uptime-kuma.service
Documentation=man:podman-generate-systemd(1)
Wants=network-online.target
After=network-online.target
RequiresMountsFor=%t/containers
[Service]
Environment=PODMAN_SYSTEMD_UNIT=%n
Restart=on-failure
TimeoutStopSec=70
ExecStart=/usr/bin/podman run \
--cidfile=%t/%n.ctr-id \
--cgroups=no-conmon \
--rm \
--sdnotify=conmon \
--replace \
--label io.containers.autoupdate=registry \
-d \
-p 3001:3001 \
-v uptime-kuma:/app/data:Z \
--name=uptime-kuma docker.io/louislam/uptime-kuma:latest
ExecStop=/usr/bin/podman stop \
--ignore -t 10 \
--cidfile=%t/%n.ctr-id
ExecStopPost=/usr/bin/podman rm \
-f \
--ignore -t 10 \
--cidfile=%t/%n.ctr-id
Type=notify
NotifyAccess=all
[Install]
WantedBy=default.target
--name
verwendet den Namen des Containers anstelle der Container-ID im Dateinamen der Service-Unit (hier: container-uptime-kuma.service)--new
, um Container von aktualisierten Images erstellen zu können; ohne diese Option können Systemd-Units Container nur unter Verwendung des ursprünglichen Images starten und stoppen und ein Auto-Update ist nicht möglich--files
hinzu, um eine Service-Unit-Datei zu erstellen$ podman generate systemd --name --new --files uptime-kuma
/home/tronde/container-uptime-kuma.service
Manpages zum Nachschlagen:
$ mv -Z container-uptime-kuma.service ~/.config/systemd/user/container-uptime-kuma.service
$ systemctl --user daemon-reload
systemd
sie findet und einlesen kann-Z
stellt sicher, dass die Datei den SELinux-Kontext des Zielverzeichnisses zugewiesen bekommt, andernfalls kann systemd
die Datei ggf. nicht verarbeitensystemd
bekannt gemacht$ systemctl --user status container-uptime-kuma.service
○ container-uptime-kuma.service - Podman container-uptime-kuma.service
Loaded: loaded (/home/tronde/.config/systemd/user/container-uptime-kuma>
Active: inactive (dead)
Docs: man:podman-generate-systemd(1)
$ podman stop uptime-kumauptime-kuma
$ podman rm uptime-kumauptime-kuma
$ systemctl --user start container-uptime-kuma.service
$ systemctl --user status container-uptime-kuma.service
● container-uptime-kuma.service - Podman container-uptime-kuma.service Loaded: loaded (/home/tronde/.config/systemd/user/container-uptime-kuma> Active: active (running) since Tue 2023-08-22 21:59:56 CEST; 14s ago
…
Manpages zum Nachschlagen:
$ podman auto-update --dry-run --format "{{.Image}} {{.Updated}}"
docker.io/louislam/uptime-kuma:latest false
--dry-run
wird sichergestellt, dass nur auf die Verfügbarkeit neuer Images geprüft wird, es werden jedoch keine Pull-Operationen ausgeführt und keine Container neu erstelltio.containers.autoupdate=registry
gestartet wurdenfalse
)Wurde die Konfiguration erfolgreich abgeschlossen, können die entsprechenden Container durch folgenden Befehl manuell aktualisiert werden:
$ podman auto-update
UNIT CONTAINER IMAGE POLICY UPDATED
container-uptime-kuma.service df21116f2573 (uptime-kuma) docker.io/louislam/uptime-kuma:latest registry false
Leider ist aktuell kein Update verfügbar, weshalb es hier nichts zu tun gibt und der Status von Updated
gleich false
ist.
Podman bringt bei der Installation die beiden systemd units
podman-auto-update.timer
und podman-auto-update.service
mit, welche zumindest unter RHEL 9 manuell aktiviert werden müssen:
$ systemctl --user enable podman-auto-update.{service,timer}
Created symlink /home/tronde/.config/systemd/user/default.target.wants/podman-auto-update.service → /usr/lib/systemd/user/podman-auto-update.service.
Created symlink /home/tronde/.config/systemd/user/timers.target.wants/podman-auto-update.timer → /usr/lib/systemd/user/podman-auto-update.timer.
$ systemctl --user start podman-auto-update.timer
$ systemctl --user status podman-auto-update.{service,timer}
○ podman-auto-update.service - Podman auto-update service
Loaded: loaded (/usr/lib/systemd/user/podman-auto-update.service; enabled; preset: disabled)
Active: inactive (dead)
TriggeredBy: ● podman-auto-update.timer
Docs: man:podman-auto-update(1)
● podman-auto-update.timer - Podman auto-update timer
Loaded: loaded (/usr/lib/systemd/user/podman-auto-update.timer; enabled; preset: disabled)
Active: active (waiting) since Sat 2023-09-02 20:56:09 CEST; 1s ago
Until: Sat 2023-09-02 20:56:09 CEST; 1s ago
Trigger: Sun 2023-09-03 00:12:22 CEST; 3h 16min left
Triggers: ● podman-auto-update.service
--rollback
in podman-auto-update(1)$ systemctl --user --no-pager -l status podman-auto-update
○ podman-auto-update.service - Podman auto-update service
Loaded: loaded (/usr/lib/systemd/user/podman-auto-update.service; enabled; preset: disabled)
Active: inactive (dead) since Sun 2023-09-03 00:12:56 CEST; 7h ago
TriggeredBy: ● podman-auto-update.timer
Docs: man:podman-auto-update(1)
Process: 309875 ExecStart=/usr/bin/podman auto-update (code=exited, status=0/SUCCESS)
Process: 310009 ExecStartPost=/usr/bin/podman image prune -f (code=exited, status=0/SUCCESS)
Main PID: 309875 (code=exited, status=0/SUCCESS)
CPU: 5.128s
Sep 03 00:12:50 example.com podman[309875]: Copying config sha256:d56b643e048f2d351ed536ec9a588555dfd4c70de3c8d510ed61078a499ba464
Sep 03 00:12:50 example.com podman[309875]: Writing manifest to image destination
Sep 03 00:12:50 example.com podman[309875]: Storing signatures
Sep 03 00:12:51 example.com podman[309875]: 2023-09-03 00:12:41.98296115 +0200 CEST m=+1.880671312 image pull docker.io/louislam/uptime-kuma:latest
Sep 03 00:12:55 example.com podman[309875]: UNIT CONTAINER IMAGE POLICY UPDATED
Sep 03 00:12:55 example.com podman[309875]: container-uptime-kuma.service 814407c7312c (uptime-kuma) docker.io/louislam/uptime-kuma:latest registry true
Sep 03 00:12:56 example.com podman[310009]: fb3a3565b2da641402e99594e09b3cdadd1b9aa84f59e7960b9961662da5ff65
Sep 03 00:12:56 example.com podman[310009]: 2023-09-03 00:12:55.421998943 +0200 CEST m=+0.020260134 image remove fb3a3565b2da641402e99594e09b3cdadd1b9aa84f59e7960b9961662da5ff65
Sep 03 00:12:56 example.com systemd[686]: Finished Podman auto-update service.
Sep 03 00:12:56 example.com systemd[686]: podman-auto-update.service: Consumed 5.128s CPU time.
Ich hoffe, das Tutorial hat euch gefallen und konnte euch einen Eindruck vermitteln, wie man automatische Updates für Container konfigurieren kann.
An jeden zweiten Dienstag im Monat ist der sogenannte Patchday. An diesem Tag werden neue Updates von Microsoft verteilt. Sobald man diese Updates auf dem Windows Rechner installiert hat, nervt ein Fenster mit der Meldung, den PC so schnell wie möglich neu zu starten.
Dieses Fenster lässt sich recht einfach deaktivieren, dazu öffnet man einfach das Startmenü und gibt "shutdown /a" in das Eingabefeld ein.
Danach bestätigt man das Ganze mit "Strg+Shift+Enter". Dadurch wird kurz ein cmd Fenster geöffnet, welches sich aber von selbst wieder schließt und schon sollte die Meldung nicht mehr auftauchen. Den Befehl könnt ihr auch einfach im cmd Fenster (cmd.exe) eingeben, jedoch benötigt ihr dann Administrator Rechte, um den Befehl nur mit "Enter" zu bestätigen
Mozilla hat ein Stabilitätsupdate für den E-Mail-Client Thunderbird veröffentlicht.
Es handelt sich zwar um kein großes Update, die neue Version 3.1.2 ist aber dennoch Pflicht.
Im gleichen Zug kann man sich aber auch um seine Add-ons kümmern und diese auf den neusten Stand bringen. z.B Lightning der Thunderbird Kalender oder Adblock Plus
Bereits Mitte Juli wurde die Sicherheitslücke in den Microsoft LNK Dateien bestätigt. LNK Dateien kennt jeder und benutzt jeder. Eine einfache Verknüpfung auf dem Desktop ist z.B. eine .lnk Datei. Bei der neuen Sicherheitslücke genügt es, auf so eine Datei zu klicken, um sich Schadsoftware einzufangen. Microsoft hat jedoch, wie angekündigt, nun einen Patch veröffentlicht, der diese Lücke schließt. Jeder sollte also den Patch manuell herunterladen oder das MS Update anwerfen, um sein System zu aktualisieren. Auf der Microsoft Seite Security Bulletin MS10-046 findet ihr den passenden Patch für eure Windows Versionen. Der Patch ist für die Systeme Windows XP, Vista, Windows 7 sowie Windows Server 2003 und 2008 zu haben
Lange war es ruhig um den IRC Client mIRC. Jetzt hat das Programm ein finales Update bekommen und steht offiziell in der Version 7.1 zur Verfügung.
Der Changelog ist etwas länger und kann für die komplette Version 7 hier eingesehen werden. Wer jetzt nicht gleich weiß was mIRC für ein Client sein soll, der ist gut beraten mal bei der Wikipedia nachzulesen was genau hinter dem Internet Relay Chat steckt. Kurz gesagt ist es ein recht altes textbasiertes Chatsystem, welches sich immer noch großer Beliebtheit erfreut. Leider handelt es sich bei mIRC um Shareware, das Programm kann aber dennoch ohne Probleme genutzt werden. Es gibt natürlich noch viele andere Clients, um sich im IRC zu bewegen oder man nutzt nur ein Plugin für den Browser. Empfehlen würde ich als Windows Alternative den Nettalk Client. Dieser ist Freeware und steht mIRC in Nichts nach. Was sind eure Favoriten?
Bei heise.de ist heute von einem neuen Outlook Upgrade zu lesen. Bei dem Upgrade handelt es sich um den sogenannten OSC (Outlook Social Connector), welcher es ermöglicht Statusmeldungen von Facebook über Outlook abzurufen. Der Connector kann bei Microsoft direkt heruntergeladen werden und ist auf den Outlook Versionen 2003, 2007, 2010 lauffähig. Da Outlook für viele das Standardkommunikationstool darstellt, ist dieser Schritt von Microsoft längst überfällig.