Ubuntu-LTS-Upgrade

Bearbeiten

Ein LTS-Upgrade wechselt den Server auf die nächste Ubuntu-LTS-Version. Es ist deutlich umfangreicher als eine normale Aktualisierung mit `apt upgrade` und benötigt Backup, Wartungsfenster und vollständigen MegBes-Funktionstest.

Grundlage ist die offizielle Ubuntu-Anleitung. Es kann immer nur auf die jeweils nächste LTS-Version aktualisiert werden; LTS-Versionen dürfen nicht übersprungen werden.

Nicht spontan durchführen

Bearbeiten

Vor dem Upgrade erforderlich:

  • ausdrückliches Wartungsfenster
  • Zugriff auf lokale Konsole oder gesicherter Vor-Ort-Zugriff
  • aktuelle Sicherung von Konfigurationen, Zertifikaten und persistenten Daten
  • dokumentierte Container, Images, Ports und Volumes
  • ausreichend freier Speicherplatz
  • geprüfter Rückweg oder Neuinstallationsplan

1. Ausgangszustand erfassen

Bearbeiten
lsb_release -a
uname -r
df -h
sudo docker ps -a
sudo docker images
sudo docker volume ls
sudo docker inspect <Containername> > <Projekt>-container-inspect.json

Die erzeugte Inspect-Datei kann sensible Umgebungswerte enthalten. Sie geschützt ablegen und nicht ins Wiki kopieren.

2. Backup erstellen und prüfen

Bearbeiten

Mindestens sichern:

  • projektspezifische Umgebungsdatei
  • Zertifikatsordner
  • Container-Startbefehl beziehungsweise Inspect-Daten
  • persistente Docker-Volumes, sofern vorhanden
  • Netplan-Konfiguration
  • weitere kundenspezifische Skripte

Ein `docker export` allein ist kein vollständiges Backup von Volumes oder Host-Dateien.

3. Aktuelles Release vollständig aktualisieren

Bearbeiten
sudo apt update
sudo apt dist-upgrade -o APT::Get::Always-Include-Phased-Updates=true

Beide Befehle müssen ohne Fehler enden. Danach Neustartbedarf prüfen und gegebenenfalls neu starten:

if [ -f /run/reboot-required ]; then sudo reboot; fi

Nach dem Neustart Docker und MegBes erneut prüfen.

4. Upgrade-Paket sicherstellen

Bearbeiten
sudo apt install update-manager-core

Prüfen, ob nur LTS-Upgrades angeboten werden:

grep '^Prompt=' /etc/update-manager/release-upgrades

Für Produktionsserver soll normalerweise erscheinen:

Prompt=lts

5. Release-Upgrade starten

Bearbeiten
sudo do-release-upgrade

Den Prozess nicht unbeaufsichtigt lassen. Vor der endgültigen Bestätigung zeigt Ubuntu geplante Installationen und Entfernungen an.

Bei Fragen zu geänderten Konfigurationsdateien nicht blind antworten. Angepasste Netzwerk-, SSH- oder Docker-Konfigurationen im Zweifel behalten und die betroffene Datei notieren.

Die Option `-d` für Entwicklungs-Releases darf auf Produktivsystemen nicht verwendet werden.

6. Neustart durchführen

Bearbeiten

Am Ende fordert Ubuntu zu einem Neustart auf. Erst danach ist das Upgrade abgeschlossen.

sudo reboot

7. Nachprüfung

Bearbeiten
lsb_release -a
uname -r
systemctl --failed
sudo systemctl status docker --no-pager
sudo docker ps
sudo docker logs --tail 100 <Containername>

Danach den vollständigen MegBes-Funktionstest durchführen:

  1. External erreicht Internal.
  2. Testbefehl erreicht die richtige Station.
  3. Stationsstatus funktioniert.
  4. Zertifikatsverbindung funktioniert.
  5. Status-Monitor meldet das Projekt erreichbar.
  6. Server- und Container-Neustart funktionieren.

8. Docker-Paketquelle prüfen

Bearbeiten

Während eines LTS-Upgrades können fremde Paketquellen deaktiviert werden. Prüfen:

sudo apt update
apt policy docker-ce

Docker nicht neu installieren, wenn die vorhandene Installation und die Container funktionieren. Eine Änderung erst nach Sicherung und Prüfung durchführen.

Dokumentation

Bearbeiten

Auf der Projektseite eintragen:

  • alte und neue Ubuntu-Version
  • Datum und Wartungsfenster
  • Backup-Ablage
  • Besonderheiten während des Upgrades
  • Docker-Version und Containerstatus
  • Ergebnis aller Funktionstests