Zum Inhalt springen

Ubuntu aktualisieren

Aus MegBes Wiki

Ubuntu aktualisieren

[Bearbeiten]

Diese Anleitung beschreibt die regelmäßige Aktualisierung eines bestehenden Ubuntu-Servers innerhalb derselben Ubuntu-Version, beispielsweise Ubuntu 24.04 LTS. Ein Wechsel auf die nächste LTS-Version ist ein größerer Eingriff und wird getrennt unter Ubuntu-LTS-Upgrade dokumentiert.

Die Befehle orientieren sich an der offiziellen Ubuntu-Server-Dokumentation.

Voraussetzungen

[Bearbeiten]
  • Zugriff auf die lokale Konsole oder per SSH
  • Benutzerkonto mit `sudo`-Berechtigung
  • funktionierende Internetverbindung
  • bei einem laufenden Kundensystem: vereinbartes Wartungsfenster
  • bekannte Container-Namen und aktueller Betriebszustand

Nicht während des Ausstellungsbetriebs beginnen. Updates können Dienste neu starten oder einen Neustart des Servers erforderlich machen.

1. Am Server anmelden

[Bearbeiten]

Bei einer SSH-Verbindung wird auf dem eigenen Rechner beispielsweise eingegeben:

ssh <Benutzername>@<IP-Adresse-des-Servers>

Beispiel:

ssh tinetronics@192.168.14.200

Beim ersten Verbindungsaufbau muss der angezeigte Fingerabdruck mit den Projektunterlagen beziehungsweise der lokalen Konsole verglichen werden. Nicht ungeprüft bestätigen.

2. Ausgangszustand dokumentieren

[Bearbeiten]

Ubuntu-Version anzeigen:

lsb_release -a

Falls `lsb_release` nicht verfügbar ist:

cat /etc/os-release

Freien Speicherplatz prüfen:

df -h

Die Systempartition `/` darf nicht nahezu voll sein. Sind nur noch wenige Gigabyte frei oder steht die Belegung bei etwa 90 Prozent oder höher, zunächst Speicherplatz prüfen und nicht blind aktualisieren.

Wenn MegBes bereits läuft, Zustand der Container festhalten:

sudo docker ps

Es müssen die erwarteten Container mit dem Zustand `Up` erscheinen. Container-Namen und verwendete Images für die Projektdokumentation notieren.

3. Paketlisten aktualisieren

[Bearbeiten]
sudo apt update

Dieser Befehl installiert noch nichts. Er lädt lediglich die aktuelle Liste verfügbarer Pakete aus den eingerichteten Paketquellen.

Erfolgskriterium

[Bearbeiten]

Der Befehl endet ohne Zeilen mit `E:` beziehungsweise `Error`. Hinweise auf verfügbare Aktualisierungen sind normal.

Bei Fehlern

[Bearbeiten]
  • `Temporary failure resolving ...`: DNS oder Internetverbindung prüfen.
  • falsches Datum beziehungsweise Zertifikatsfehler: Systemzeit mit `date` prüfen.
  • Fehler einer fremden Paketquelle: nicht einfach ignorieren; Quelle und Projektdokumentation prüfen.
  • `Could not get lock`: Es läuft bereits eine Paketverwaltung oder ein automatisches Update. Einige Minuten warten und erneut prüfen. Keine Lock-Dateien manuell löschen.

Bei einem Fehler in diesem Schritt nicht mit dem Upgrade fortfahren.

4. Verfügbare Aktualisierungen ansehen

[Bearbeiten]
apt list --upgradable

Die Liste dient zur Kontrolle. Meldungen über phasenweise zurückgehaltene Pakete können unter Ubuntu normal sein; diese Pakete werden später automatisch freigegeben.

5. Aktualisierungen installieren

[Bearbeiten]
sudo apt upgrade

APT zeigt vor der Installation eine Zusammenfassung und fragt normalerweise nach einer Bestätigung. Die Liste kurz prüfen und dann mit `Y` beziehungsweise `J` und Enter bestätigen.

Während der Installation können Dialoge erscheinen. Bei Fragen zum Ersetzen einer bereits angepassten Konfigurationsdatei im Zweifel die vorhandene lokale Version behalten und den Dateinamen für eine spätere Prüfung notieren.

Erfolgskriterium

[Bearbeiten]

Der Befehl kehrt ohne Fehlermeldung zur Eingabeaufforderung zurück. Anschließend erneut ausführen:

sudo apt update
apt list --upgradable

Eine kleine Zahl phasenweise zurückgehaltener Pakete ist möglich. Echte Fehler oder nicht fertig konfigurierte Pakete müssen untersucht werden.

6. Neustartbedarf prüfen

[Bearbeiten]
if [ -f /run/reboot-required ]; then cat /run/reboot-required; else echo "Kein Neustart erforderlich"; fi

Wird `System restart required` oder eine vergleichbare Meldung angezeigt, ist ein Neustart erforderlich.

Bei einem Kundensystem vor dem Neustart noch einmal prüfen:

sudo docker ps

Dann neu starten:

sudo reboot

Die SSH-Verbindung wird dabei beendet. Zwei bis fünf Minuten warten und erneut verbinden.

7. System nach dem Neustart prüfen

[Bearbeiten]

Ubuntu-Version und Kernel anzeigen:

lsb_release -a
uname -r

Fehlgeschlagene Systemdienste anzeigen:

systemctl --failed

Im Idealfall erscheint `0 loaded units listed`. Falls Dienste fehlgeschlagen sind, deren Namen notieren und vor der Freigabe untersuchen.

Docker prüfen:

sudo systemctl status docker --no-pager
sudo docker ps

Der Docker-Dienst muss `active (running)` sein und die erwarteten MegBes-Container müssen wieder den Zustand `Up` zeigen.

Protokoll des internen Containers prüfen; Container-Namen anpassen:

sudo docker logs --tail 100 <Containername>

Auf wiederholte Exceptions, Zertifikatsfehler, Verbindungsfehler oder Neustartschleifen achten.

8. MegBes-Funktion testen

[Bearbeiten]
  1. Erreichbarkeit von `megbes-internal` prüfen.
  2. Status-Monitor kontrollieren.
  3. mindestens eine ungefährliche Teststation beziehungsweise einen abgestimmten Testbefehl aufrufen.
  4. prüfen, dass genau die erwartete Station reagiert.
  5. bei stationsgesteuerten Projekten Statuswechsel und Rücksetzung prüfen.

9. Dokumentieren

[Bearbeiten]

Auf der Projektseite eintragen:

  • Datum und ausführende Person
  • Ubuntu-Version vor und nach der Aktualisierung
  • ob ein Neustart erforderlich war
  • Docker- und MegBes-Funktionstest
  • Auffälligkeiten und noch offene Maßnahmen

Abgrenzung: vollständiges Release-Upgrade

[Bearbeiten]

`sudo apt upgrade` hält das System innerhalb seines vorhandenen Ubuntu-Releases aktuell. Es wechselt beispielsweise nicht automatisch von Ubuntu 22.04 LTS auf 24.04 LTS. Dafür ist ein geplantes Ubuntu-LTS-Upgrade mit Backup und längerer Ausfallzeit erforderlich.