Update-Notify/Public: Unterschied zwischen den Versionen

Aus OPSI4Institutes Wiki
Zur Navigation springen Zur Suche springen
Zeile 17: Zeile 17:
<BR>
<BR>
[[Datei:O4i_Paket-Lebenszyklus.png|600px|Softwarepaket-Lebenszyklus]]
[[Datei:O4i_Paket-Lebenszyklus.png|600px|Softwarepaket-Lebenszyklus]]
<BR>
<BR>
<BR>
Der rechte Prozess kann selbst automatisiert werden oder man bezieht fertige, aktuallisierte Pakete vom Hersteller oder einem Dienstleister.
Der rechte Prozess kann selbst automatisiert werden oder man bezieht fertige, aktuallisierte Pakete vom Hersteller oder einem Dienstleister.

Version vom 3. Oktober 2026, 14:30 Uhr

Notwendigkeit eines Update-Monitoring

Unabhängig vom konkreten Clientmanagement-System (OPSI, ACMP, Baramundi, SCCM/Intune, Matrix42 etc) ist es zwingend notwendig, über das Erscheinen von Updates/Security-Fixes informiert zu werden. Durch die SW-Hersteller erfolgt dies auf die verschiedenste Art und Weise:

  • Ankündigungen auf derem Website bzw. Forum,
  • eintragen in deren Mailinglisten,
  • Abonnieren von RSS-Feeds,
  • Benachrichtigung bei Starten der Applikation auf dem Client
  • usw. ...

Meines Erachtens ist diese Art Monitoring nur für eine kleine Anzahl von SW-Produkten (<30?) händisch möglich. Nur wenige Applikationen updaten sich selbst über eigene Services, z.B. Google-Chrome, Firefox, Thunderbird sowie die meisten Applikationen aus dem MS-Store.

Aus der Summe der vorliegenden (statistischen) Daten seit 05/2015 kann man ableiten, dass ca. pro zwei SW-Produkten durchschnittlich ein monatliches Update anfällt.
Bei beispielsweise 60 SW-Anwendungen des gemanagten Clientpools sind also MONATLICH ca. 30 Updates bereitzustellen und auszurollen.

Lebenszyklus SW-Paket im Clientmanagementsystems

Allgemein kann man den Lebenszyklus eines Software-Produktes innerhalb eines Clientmanagement-Systems wie folgt darstellen:
Softwarepaket-Lebenszyklus

Der rechte Prozess kann selbst automatisiert werden oder man bezieht fertige, aktuallisierte Pakete vom Hersteller oder einem Dienstleister.

Beschreibung des freien Services 'o4i-DFN-Notifier'

Um den mühseligen Teil der Beobachtung diverser Herstellerseiten zu reduzieren, informieren wir automatisiert über SW-Produkte mit häufigen Updates. Der Update-Notifier ist ein o4i-Service des Leibniz-Institut für Bildungsmedien | Georg-Eckert-Institutes (GEI). Es werden ca. 270 Applikationen (Stand September 2025) gemonitort.

Zeit-gesteuerte Scripte parsen die jeweilige Hersteller-Website des Produktes, extrahieren die dortige aktuelle Versionsnummer und Download-Link, vergleichen diese Informationen mit der letzten bekannten Version. Gegebenenfalls wird das Hersteller-Setup-File gedownloadet und analysiert. Das Erkennen einer neue Produktversion generiert eine eMail und trägt es gleichzeitig in die Datenbank des Webservice ein.
Die Benachrichtigung erfolgt über eine DFN-Mailingliste "o4i-notify"(read-onlny) und seit Frühjahr 2025 zusätzlich über einen Webservice "https://notify.o4i.org".

Die versionierte SW-Entwicklung der Scripte erfolgt über unser o4i-GIT: https://git.o4i.org/o4i-infra/notify-server (bitte Fehler als Issue melden...)

Mailing-Liste "o4i-notify"

Listenanmeldung per Mail: --> anonyme Listen-Anmeldung per eMail
(Mail an LISTSERV@LISTSERV.DFN.DE mit Body "SUBSCRIBE O4I-NOTIFY Name ODER Anonymous ", später Confirm-Mail bestätigen...).
Listenanmeldung per Web: https://www.listserv.dfn.de/sympa/info/o4i-notify (Website der Liste)

Listenarchiv: https://www.listserv.dfn.de/sympa/arc/o4i-notify/2025-09/ (monatsweise), Das Mailinglisten-Archiv mit dem Datenbestand ab Mitte 12/2015 läßt sich durchsuchen.

Das monatliche Mailaufkommen ist anwachsend und beträgt zur Zeit ca.140 Benachrichtigungen, gegebenenfalls sollte man sich die Mailingliste als "Digest/Zusammenfassung" konfigurieren.
Monatliche Meldungen Stand 2025-10-01

Die dann bei einem vorliegendem Update versandten Benachrichtigungs-eMails haben folgende feste Struktur:

FROM:     "Opsi DFN Notify" (via o4i-notify Mailing List) <o4i-notify@listserv.dfn.de>
SUBJECT:  [opsipackage]-{$PAKETNAME} Update gefunden! [alteVersion]->[neueVersion]
MAILBODY: Sie finden ein Update der Software {$PAKETNAME} Version [$DOWNLOAD_VERSION] unter $DOWNLOAD_LINK.

und sind damit "filter- / SIEVE-" freundlich.

Bemerkung:
Update-Benachrichtigungen mit der AltVersion '[0000] bzw. [0.0.0]' o.ä. kennzeichnen den Monitoring-Start eines neuen SW-Produktes.

Hinweis:
manch ungewöhnliche Änderung auf der SW-Herstellerseite kann zu einer Falschmeldung führen, das scheint nicht zu vermeiden zu sein - die Fehlerquote ist aber gering.

Der Notify-Service ist auch in das zentrale Monitoring eingebunden, damit werden die meisten Fehler (Download-Error, Version#-Error u.ä.) signalisiert:
Monitoring Notify-Service

Webservice "notify.o4i.org"

Seit Frühjahr 2025 werden die ermittelten Daten auch über einen einfachen Webservice https://notify.o4i.org/ bereitgestellt:

Webservice Screenshot (2026-02-25)

Diese Auflistung ist über den Spaltenkopf einfach sortierbar ... Datum, Softwareprodukt, Status

Es gibt einen speziellen Datenbank-View:

https://notify.o4i.org/notify_allcurrent.log --> Liste über alle Produkte mit dem jeweils letzten Versionsstand (pro Produkt eine Zeile).
Das Format ist die u.a. CSV-Struktur.
Für Automatisation kann gerne das json Format genutzt werden:
https://notify.o4i.org/notify_allcurrent.json 


Ein produktspzifischer View generiert einen strukturierte Textausgabe, in der die erste Zeile den aktuellsten Versions-Informationen enthält.
(Beispiel: https://notify.o4i.org/notify_vscode.log)
Webservice Screenshot VScode (2026-03-25)
Hinweis:
in den produktspezifischen Log-Dateien Datenviews sind die ca. 13.000 Notify-Meldungen von 2015 bis Frühjahr 2025 größtenteils eingepflegt!

Log-Datei Datenstruktur (Versionsstand 2.1):

1758856046;2025-09-26;05:07;CEST;2.0;vscode;1.104.2;https://code.visualstudio.com/sha/download?build=stable&os=win32-x64,ok
#     |           |     |     |    |     |      |             |                                                           |
# Unix-Timecode   |     |     |    |     |      |             |                                                           |
#                 |     |     |    |     |      |             |                                                           |
#                Date   |     |    |     |      |             |                                                           |
#                      Time   |    |     |      |             |                                                           |
#                        TimeZone  |     |      |             |                                                           |
#                          intDataStruc  |      |             |                                                           |
#                                    Product    |             |                                                           |
#                                         ProductVersion      |                                                           |
#                                                       Download-URL                                                      |
#                                                                                                                       Status [ok,disabled] 
#                                                                                                                       (ab 2.1)



Ansatz als Startauslöser für CI/CD (Continuous Integration/Continuous Delivery)

Für den automatisierten Versionsabgleich bietet sich der Aufruf der Gesamtliste "notify_allcurrent.log" mit einer einzelnen Produktzeile an:

wget -q -O - https://notify.o4i.org/notify_allcurrent.log | grep ';vscode' | grep -i 'ok' | cut -d';' -f7

Eine Ausgabe im JSON-Format erfolgt mit:

wget -q -O -  https://notify.o4i.org/notify_allcurrent.json | jq '.[] | select(.["opsi-name"] == "vscode")'

Ähnlich ist die Auswertung des produktspezifischen Logfiles und die Auswertung der ersten Zeile an (Beispiel "vscode"):

wget -q -O - https://notify.o4i.org/notify_vscode.json | jq -r '.[0]."software-url"'

Analog für die Speicherung in Variablen:

read -r SWVERSION SWSTATUS SWURL < <( wget -q -O -  https://notify.o4i.org/notify_allcurrent.json | jq '.[] | select(.["opsi-name"] == "vscode") | "\(."software-version") \(."check-status") \(."software-url")"')

Eine einfache Liste mit den Produktnamen der gemonitorten Produkte generiert man z.B. mit:

wget -q -O - https://notify.o4i.org/notify_allcurrent.json | jq -r '.[]."opsi-name"' | sort > o4inotify_all-products_$(date +%F).lst

Vortrag "Neues vom Notify-Service" (o4i-Communitytreffen 11.Juni 2025)

Auf dem o4i-Communitytreffen wurde im Rahmen der Koordinatorengruppe darüber in einem Vortrag informiert.
Dieser ist hier als PDF abrufbar Medium:O4i-community3_NeuesVomNotify_FINALmini.pdf.