Benutzer-Werkzeuge

Webseiten-Werkzeuge


ubuntu:ubuntu_24.04_1

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
ubuntu:ubuntu_24.04_1 [2026/05/09 10:28] – gelöscht franzubuntu:ubuntu_24.04_1 [2026/05/09 10:31] (aktuell) – angelegt franz
Zeile 1: Zeile 1:
 +====== Ubuntu Server 22.04 LTS auf 24.04 LTS upgraden ======
 +
 +Diese Anleitung beschreibt das Upgrade eines Ubuntu Servers von Ubuntu 22.04 LTS auf Ubuntu 24.04 LTS.
 +
 +Stand: 2026-05-09
 +
 +===== Ziel =====
 +
 +Upgrade eines bestehenden Ubuntu Servers von Ubuntu 22.04 LTS auf Ubuntu 24.04 LTS.
 +
 +Besonderheiten dieses Servers:
 +
 +  * Ubuntu Server
 +  * SSH Zugriff
 +  * UFW Firewall
 +  * Apache als Reverse Proxy
 +  * Let's Encrypt und Certbot via Snap
 +  * Docker
 +  * Docker Compose
 +  * Nextcloud unter Docker
 +
 +===== Wichtige Hinweise =====
 +
 +Vor dem Upgrade muss ein funktionierendes Backup vorhanden sein.
 +
 +Ein Release Upgrade kann Paketquellen, Dienste, Konfigurationsdateien und Abhängigkeiten verändern. Besonders bei Docker, Nextcloud, Apache, SSH und Firewall Regeln muss vorsichtig gearbeitet werden.
 +
 +Das Upgrade sollte möglichst in einem Wartungsfenster durchgeführt werden.
 +
 +Wenn möglich, zusätzlich zur SSH Verbindung eine Konsole des Providers, eine VM Konsole, IPMI, iLO oder eine andere Notfallkonsole bereithalten.
 +
 +Das Upgrade sollte in tmux oder screen gestartet werden, damit es bei einer unterbrochenen SSH Verbindung weiterläuft.
 +
 +Nicht verwenden:
 +
 +<code bash> sudo do-release-upgrade -d 
 +</code>
 +
 +Der Parameter -d ist für Entwicklungs oder vorgezogene Upgrade Pfade gedacht und sollte auf produktiven Servern nicht verwendet werden.
 +
 +===== Offizielle Quellen =====
 +
 +  * Ubuntu Server Upgrade Guide: [[https://ubuntu.com/server/docs/how-to/software/upgrade-your-release/?utm_source=chatgpt.com|https://ubuntu.com/server/docs/how-to/software/upgrade-your-release/]]
 +  * Ubuntu 24.04 LTS Release Notes: [[https://documentation.ubuntu.com/release-notes/24.04/?utm_source=chatgpt.com|https://documentation.ubuntu.com/release-notes/24.04/]]
 +  * Ubuntu 24.04 Community Release Notes: [[https://discourse.ubuntu.com/t/ubuntu-24-04-lts-noble-numbat-release-notes/39890?utm_source=chatgpt.com|https://discourse.ubuntu.com/t/ubuntu-24-04-lts-noble-numbat-release-notes/39890]]
 +
 +===== 1. Aktuelle Systemversion prüfen =====
 +
 +<code bash> lsb_release -a uname -r hostnamectl 
 +</code>
 +
 +Erwartet vor dem Upgrade:
 +
 +<code text> Ubuntu 22.04.x LTS Codename: jammy 
 +</code>
 +
 +===== 2. Backup erstellen =====
 +
 +Vor dem Upgrade muss ein vollständiges und geprüftes Backup vorhanden sein.
 +
 +Mindestens sichern:
 +
 +  * /etc
 +  * Docker Compose Verzeichnisse
 +  * .env Dateien
 +  * Docker Volumes
 +  * Datenbanken
 +  * Nextcloud Datenverzeichnis
 +  * Apache Konfiguration
 +  * Certbot und Let's Encrypt Konfiguration
 +  * wichtige eigene Skripte
 +  * Cronjobs
 +  * UFW Regeln
 +
 +==== 2.1 /etc sichern ====
 +
 +<code bash> sudo tar -czf /root/backup-etc-$(date +%F).tar.gz /etc 
 +</code>
 +
 +==== 2.2 Docker Compose Verzeichnisse sichern ====
 +
 +Pfad zum Docker Compose Projekt prüfen:
 +
 +<code bash> cd /pfad/zum/docker-compose-verzeichnis pwd ls -la 
 +</code>
 +
 +Beispiel Backup:
 +
 +<code bash> sudo tar -czf /root/backup-docker-compose-$(date +%F).tar.gz /pfad/zum/docker-compose-verzeichnis 
 +</code>
 +
 +==== 2.3 Docker Status prüfen ====
 +
 +<code bash> docker ps docker ps -a docker volume ls docker network ls docker compose version docker version 
 +</code>
 +
 +==== 2.4 Nextcloud Backup prüfen ====
 +
 +Bei Nextcloud unter Docker müssen besonders gesichert werden:
 +
 +  * Nextcloud Datenverzeichnis
 +  * Nextcloud config.php
 +  * Datenbank
 +  * Docker Compose Datei
 +  * .env Datei
 +  * eventuell externe App Daten
 +
 +Datenbankcontainer anzeigen:
 +
 +<code bash> docker ps 
 +</code>
 +
 +Beispiel für einen Datenbankdump bei MariaDB oder MySQL:
 +
 +<code bash> docker exec -it DATENBANK_CONTAINER_NAME mysqldump -u root -p --all-databases > /root/backup-mysql-$(date +%F).sql 
 +</code>
 +
 +Hinweis: Containername, Datenbankbenutzer und Datenbankname müssen zur eigenen Installation passen.
 +
 +===== 3. SSH Zugriff absichern =====
 +
 +Während des Upgrades kann ein zusätzlicher SSH Port 1022 verwendet werden. Der Ubuntu Release Upgrader bietet diesen Port häufig als Notfallzugang an.
 +
 +Port 1022 in UFW erlauben:
 +
 +<code bash> sudo ufw allow 1022/tcp sudo ufw status numbered 
 +</code>
 +
 +SSH Status prüfen:
 +
 +<code bash> systemctl status ssh --no-pager ss -tlnp | grep -E ':22|:1022' 
 +</code>
 +
 +tmux installieren:
 +
 +<code bash> sudo apt install tmux 
 +</code>
 +
 +tmux starten:
 +
 +<code bash> tmux 
 +</code>
 +
 +Das Upgrade danach innerhalb der tmux Sitzung starten.
 +
 +===== 4. System vollständig aktualisieren =====
 +
 +Paketlisten aktualisieren:
 +
 +<code bash> sudo apt update 
 +</code>
 +
 +Bestehende Ubuntu 22.04 Installation vollständig aktualisieren:
 +
 +<code bash> sudo apt dist-upgrade -o APT::Get::Always-Include-Phased-Updates=true 
 +</code>
 +
 +Nicht mehr benötigte Pakete entfernen:
 +
 +<code bash> sudo apt autoremove --purge 
 +</code>
 +
 +Paketstatus prüfen:
 +
 +<code bash> sudo apt --fix-broken install sudo dpkg --audit apt-mark showhold 
 +</code>
 +
 +Freien Speicherplatz prüfen:
 +
 +<code bash> df -h df -h / /boot /var 
 +</code>
 +
 +Falls Pakete zurückgehalten werden:
 +
 +<code bash> apt list --upgradable apt-mark showhold 
 +</code>
 +
 +Zurückgehaltene Pakete zuerst bewusst prüfen und beheben.
 +
 +===== 5. Reboot vor dem Release Upgrade =====
 +
 +Prüfen, ob ein Reboot erforderlich ist:
 +
 +<code bash> test -f /run/reboot-required && echo "Reboot erforderlich" 
 +</code>
 +
 +Server neu starten:
 +
 +<code bash> sudo reboot 
 +</code>
 +
 +Nach dem Reboot erneut anmelden und prüfen:
 +
 +<code bash> lsb_release -a uname -r systemctl --failed 
 +</code>
 +
 +===== 6. Upgrade Tool vorbereiten =====
 +
 +update-manager-core installieren:
 +
 +<code bash> sudo apt install update-manager-core 
 +</code>
 +
 +Konfiguration prüfen:
 +
 +<code bash> cat /etc/update-manager/release-upgrades 
 +</code>
 +
 +Dort muss stehen:
 +
 +<code text> Prompt=lts 
 +</code>
 +
 +Falls nicht, Datei bearbeiten:
 +
 +<code bash> sudo nano /etc/update-manager/release-upgrades 
 +</code>
 +
 +Oder per Befehl setzen:
 +
 +<code bash> sudo sed -i 's/^Prompt=.*/Prompt=lts/' /etc/update-manager/release-upgrades 
 +</code>
 +
 +===== 7. Drittanbieter Paketquellen prüfen =====
 +
 +Vor dem Upgrade alle zusätzlichen Paketquellen prüfen:
 +
 +<code bash> ls -la /etc/apt/sources.list.d/ grep -R "^deb " /etc/apt/sources.list /etc/apt/sources.list.d/ 
 +</code>
 +
 +Typische Drittquellen:
 +
 +  * Docker
 +  * Google
 +  * Microsoft
 +  * NodeSource
 +  * PostgreSQL
 +  * MariaDB
 +  * Grafana
 +  * sonstige PPAs
 +
 +Der Release Upgrader deaktiviert Drittanbieterquellen häufig automatisch. Nach dem Upgrade müssen sie für noble wieder korrekt aktiviert werden.
 +
 +Aktuellen Ubuntu Codename prüfen:
 +
 +<code bash> lsb_release -cs 
 +</code>
 +
 +Vor dem Upgrade sollte hier stehen:
 +
 +<code text> jammy 
 +</code>
 +
 +Nach dem Upgrade sollte hier stehen:
 +
 +<code text> noble 
 +</code>
 +
 +===== 8. Optional Docker und Nextcloud vor dem Upgrade stoppen =====
 +
 +Bei produktiven Diensten Wartungsfenster einplanen.
 +
 +Docker Compose Verzeichnis öffnen:
 +
 +<code bash> cd /pfad/zum/docker-compose-verzeichnis 
 +</code>
 +
 +Status prüfen:
 +
 +<code bash> docker compose ps 
 +</code>
 +
 +Optional Container stoppen:
 +
 +<code bash> docker compose down 
 +</code>
 +
 +Nur stoppen, wenn ein Backup vorhanden ist und klar ist, wie die Dienste wieder gestartet werden.
 +
 +===== 9. Release Upgrade starten =====
 +
 +Upgrade starten:
 +
 +<code bash> sudo do-release-upgrade 
 +</code>
 +
 +Während des Upgrades:
 +
 +  * Fragen aufmerksam lesen
 +  * keine Paketentfernungen blind bestätigen
 +  * bei Konfigurationsdateien bewusst entscheiden
 +  * Unterschiede anzeigen lassen, wenn lokale Änderungen vorhanden sind
 +  * bei SSH Hinweis Port 1022 offen lassen
 +  * bei Aufforderung zum Neustart bestätigen
 +
 +Typische Frage bei Konfigurationsdateien:
 +
 +  * lokale Version behalten
 +  * Paketbetreuer Version installieren
 +  * Unterschiede anzeigen
 +
 +Bei manuell angepassten Diensten wie Apache, SSH, UFW, Docker oder Fail2Ban im Zweifel zuerst Unterschiede anzeigen lassen.
 +
 +===== 10. Reboot nach dem Upgrade =====
 +
 +Nach Abschluss des Upgrades neu starten:
 +
 +<code bash> sudo reboot 
 +</code>
 +
 +Danach Version prüfen:
 +
 +<code bash> lsb_release -a uname -r hostnamectl 
 +</code>
 +
 +Erwartet:
 +
 +<code text> Ubuntu 24.04.x LTS Codename: noble 
 +</code>
 +
 +===== 11. Paketquellen nach dem Upgrade prüfen =====
 +
 +Paketquellen prüfen:
 +
 +<code bash> sudo apt update 
 +</code>
 +
 +Alle Quellen kontrollieren:
 +
 +<code bash> grep -R "^deb " /etc/apt/sources.list /etc/apt/sources.list.d/ 
 +</code>
 +
 +Es sollten keine alten jammy Quellen aktiv sein, außer bewusst und begründet.
 +
 +Nach alten Einträgen suchen:
 +
 +<code bash> grep -R "jammy" /etc/apt/sources.list /etc/apt/sources.list.d/ 
 +</code>
 +
 +Falls Docker Quelle deaktiviert wurde:
 +
 +<code bash> ls -la /etc/apt/sources.list.d/ cat /etc/apt/sources.list.d/docker.list 2>/dev/null 
 +</code>
 +
 +Docker Quelle muss nach dem Upgrade auf noble zeigen, nicht auf jammy.
 +
 +===== 12. System nachbereinigen =====
 +
 +Paketstatus prüfen:
 +
 +<code bash> sudo apt update sudo apt upgrade sudo apt autoremove --purge sudo apt clean 
 +</code>
 +
 +Fehlerhafte Dienste anzeigen:
 +
 +<code bash> systemctl --failed 
 +</code>
 +
 +Fehler im aktuellen Boot anzeigen:
 +
 +<code bash> journalctl -p 3 -xb 
 +</code>
 +
 +Pakete mit Problemen prüfen:
 +
 +<code bash> sudo dpkg --audit sudo apt --fix-broken install 
 +</code>
 +
 +===== 13. SSH nach dem Upgrade prüfen =====
 +
 +Status prüfen:
 +
 +<code bash> systemctl status ssh --no-pager systemctl status ssh.socket --no-pager ss -tlnp | grep -E ':22|:1022' 
 +</code>
 +
 +Ab Ubuntu 24.04 kann SSH über systemd Socket Activation laufen. Deshalb zusätzlich ssh.socket prüfen.
 +
 +Falls SSH funktioniert und Port 1022 nicht mehr benötigt wird:
 +
 +<code bash> sudo ufw delete allow 1022/tcp sudo ufw status numbered 
 +</code>
 +
 +===== 14. UFW Firewall prüfen =====
 +
 +Status anzeigen:
 +
 +<code bash> sudo ufw status verbose 
 +</code>
 +
 +Typische erlaubte Ports:
 +
 +<code text> 22/tcp 80/tcp 443/tcp 
 +</code>
 +
 +Falls temporär verwendet:
 +
 +<code text> 1022/tcp 
 +</code>
 +
 +Regeln prüfen:
 +
 +<code bash> sudo ufw status numbered 
 +</code>
 +
 +===== 15. Apache Reverse Proxy prüfen =====
 +
 +Apache Konfiguration testen:
 +
 +<code bash> sudo apache2ctl configtest 
 +</code>
 +
 +Apache Status prüfen:
 +
 +<code bash> systemctl status apache2 --no-pager 
 +</code>
 +
 +Apache neu laden:
 +
 +<code bash> sudo systemctl reload apache2 
 +</code>
 +
 +Aktive Virtual Hosts prüfen:
 +
 +<code bash> sudo apache2ctl -S 
 +</code>
 +
 +Aktive Module prüfen:
 +
 +<code bash> apache2ctl -M 
 +</code>
 +
 +Wichtige Module für Reverse Proxy:
 +
 +  * proxy
 +  * proxy_http
 +  * headers
 +  * ssl
 +  * rewrite
 +
 +Prüfung:
 +
 +<code bash> apache2ctl -M | grep -E "proxy|ssl|rewrite|headers" 
 +</code>
 +
 +===== 16. Let's Encrypt und Certbot prüfen =====
 +
 +Snap prüfen:
 +
 +<code bash> snap list 
 +</code>
 +
 +Certbot Zertifikate prüfen:
 +
 +<code bash> sudo certbot certificates 
 +</code>
 +
 +Renewal Test durchführen:
 +
 +<code bash> sudo certbot renew --dry-run 
 +</code>
 +
 +Timer prüfen:
 +
 +<code bash> systemctl list-timers | grep -i certbot systemctl list-timers | grep -i snap 
 +</code>
 +
 +===== 17. Docker nach dem Upgrade prüfen =====
 +
 +Docker Version prüfen:
 +
 +<code bash> docker version docker compose version 
 +</code>
 +
 +Docker Dienst prüfen:
 +
 +<code bash> systemctl status docker --no-pager 
 +</code>
 +
 +Container prüfen:
 +
 +<code bash> docker ps docker ps -a 
 +</code>
 +
 +Falls Container vor dem Upgrade gestoppt wurden:
 +
 +<code bash> cd /pfad/zum/docker-compose-verzeichnis docker compose up -d 
 +</code>
 +
 +Logs prüfen:
 +
 +<code bash> docker compose logs --tail=100 
 +</code>
 +
 +===== 18. Nextcloud nach dem Upgrade prüfen =====
 +
 +Docker Container prüfen:
 +
 +<code bash> docker ps 
 +</code>
 +
 +Nextcloud Logs prüfen:
 +
 +<code bash> docker logs --tail=100 NEXTCLOUD_CONTAINER_NAME 
 +</code>
 +
 +Nextcloud Status per occ prüfen:
 +
 +<code bash> docker exec -u www-data -it NEXTCLOUD_CONTAINER_NAME php occ status 
 +</code>
 +
 +Maintenance Mode prüfen:
 +
 +<code bash> docker exec -u www-data -it NEXTCLOUD_CONTAINER_NAME php occ maintenance:mode 
 +</code>
 +
 +Core Integrität prüfen:
 +
 +<code bash> docker exec -u www-data -it NEXTCLOUD_CONTAINER_NAME php occ integrity:check-core 
 +</code>
 +
 +Hinweis: Containername und Benutzer können je nach Image abweichen.
 +
 +===== 19. Netzwerk prüfen =====
 +
 +IP Adressen prüfen:
 +
 +<code bash> ip addr ip route 
 +</code>
 +
 +DNS prüfen:
 +
 +<code bash> resolvectl status 
 +</code>
 +
 +Erreichbarkeit prüfen:
 +
 +<code bash> ping -c 4 1.1.1.1 ping -c 4 ubuntu.com 
 +</code>
 +
 +Offene Ports prüfen:
 +
 +<code bash> ss -tulpen 
 +</code>
 +
 +===== 20. Dienste prüfen =====
 +
 +Alle fehlgeschlagenen Dienste anzeigen:
 +
 +<code bash> systemctl --failed 
 +</code>
 +
 +Wichtige Dienste einzeln prüfen:
 +
 +<code bash> systemctl status ssh --no-pager systemctl status apache2 --no-pager systemctl status docker --no-pager systemctl status ufw --no-pager 
 +</code>
 +
 +Logs prüfen:
 +
 +<code bash> journalctl -p 3 -xb journalctl -u apache2 -n 100 --no-pager journalctl -u docker -n 100 --no-pager journalctl -u ssh -n 100 --no-pager 
 +</code>
 +
 +===== 21. Alte Kernel und Pakete prüfen =====
 +
 +Installierte Kernel anzeigen:
 +
 +<code bash> dpkg -l | grep linux-image 
 +</code>
 +
 +Nicht mehr benötigte Pakete entfernen:
 +
 +<code bash> sudo apt autoremove --purge 
 +</code>
 +
 +System bereinigen:
 +
 +<code bash> sudo apt clean 
 +</code>
 +
 +===== 22. Abschlussprüfung =====
 +
 +Folgende Punkte müssen erfolgreich sein:
 +
 +  * Server startet ohne Fehler
 +  * SSH funktioniert
 +  * UFW Regeln passen
 +  * Apache Konfiguration ist gültig
 +  * HTTPS Zertifikate funktionieren
 +  * Docker läuft
 +  * Nextcloud ist erreichbar
 +  * keine fehlgeschlagenen systemd Dienste
 +  * keine alten jammy Paketquellen aktiv
 +  * apt update läuft fehlerfrei
 +  * journalctl zeigt keine kritischen neuen Fehler
 +
 +Befehle:
 +
 +<code bash> lsb_release -a uname -r sudo apt update systemctl --failed journalctl -p 3 -xb sudo apache2ctl configtest sudo certbot renew --dry-run docker ps sudo ufw status verbose 
 +</code>
 +
 +===== 23. Temporäre Freigaben entfernen =====
 +
 +Falls Port 1022 nur für das Upgrade geöffnet wurde:
 +
 +<code bash> sudo ufw delete allow 1022/tcp sudo ufw status numbered 
 +</code>
 +
 +===== 24. Rollback =====
 +
 +Falls das Upgrade fehlschlägt:
 +
 +  * nicht weiter blind reparieren
 +  * Fehlermeldungen sichern
 +  * Logs sichern
 +  * Backup prüfen
 +  * bei VM Snapshot zurückspielen
 +  * bei Bare Metal Restore aus Backup planen
 +
 +Wichtige Logs:
 +
 +<code text> /var/log/dist-upgrade/ /var/log/apt/ /var/log/syslog 
 +</code>
 +
 +Anzeigen:
 +
 +<code bash> ls -la /var/log/dist-upgrade/ less /var/log/dist-upgrade/main.log less /var/log/dist-upgrade/apt.log 
 +</code>
 +
 +===== 25. Kurzfassung =====
 +
 +<code bash> sudo ufw allow 1022/tcp sudo apt update sudo apt dist-upgrade -o APT::Get::Always-Include-Phased-Updates=true sudo apt autoremove --purge sudo reboot
 +
 +sudo apt install update-manager-core \\ cat /etc/update-manager/release-upgrades
 +
 +sudo do-release-upgrade
 +
 +sudo reboot
 +
 +lsb_release -a \\ sudo apt update \\ systemctl --failed \\ journalctl -p 3 -xb \\ sudo apache2ctl configtest \\ sudo certbot renew --dry-run \\ docker ps \\ sudo ufw status verbose \\ 
 +</code>
 +
 +===== Ergebnis =====
 +
 +Nach erfolgreichem Abschluss läuft der Server auf:
 +
 +<code text> Ubuntu 24.04 LTS Noble Numbat 
 +</code>
 +
 +Alle produktiven Dienste wurden geprüft.
 +
  
ubuntu/ubuntu_24.04_1.1778315281.txt.gz · Zuletzt geändert: von franz

Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki