Bestand und Anforderungen aufnehmen
Ohne zwei belastbare Listen ist jeder Vergleich Bauchgefühl. Liste eins beschreibt, was heute läuft. Liste zwei beschreibt, was die Anwendung fordert.
Fang bei den Systemen an, die du schon hast. Interessant sind dabei nicht Name und Version, die kennst du. Interessant sind die Fremdquellen: Jedes Paket, das nicht aus den Basis-Repositories stammt, ist beim nächsten Versionssprung ein potenzieller Blocker, und genau diese Pakete tauchen in keiner Entscheidungsvorlage auf.
# Grunddaten
cat /etc/os-release # ID, VERSION_ID, PRETTY_NAME
hostnamectl # Kernel, Architektur, Virtualisierung
# RHEL/Rocky/Alma: aus welchem Repo stammt jedes installierte Paket?
dnf repoquery --installed --qf '%{from_repo}' | sort | uniq -c | sort -rn
dnf repolist --enabled
# Debian/Ubuntu: welche Quellen sind überhaupt konfiguriert?
grep -rhE '^(deb |Types:)' /etc/apt/sources.list /etc/apt/sources.list.d/
apt-cache policy | head -40Die Ausgabe von dnf repoquery --installed ist der wichtigste Teil: Alles, was nicht aus baseos, appstream oder anaconda kommt, gehört auf die Risikoliste. Auf Debian und Ubuntu liefert apt-cache policy dieselbe Information über die Prioritäten der Quellen.
# Verteilung über alle Hosts
ansible all -m setup -a 'filter=ansible_distribution*'
# Kompakt als CSV für die Entscheidungsvorlage
ansible all -m shell --one-line \
-a '. /etc/os-release; echo "$(hostname -s);$ID;$VERSION_ID;$(uname -r)"'Wenn es kein Ansible gibt, tut es auch eine Schleife über ssh. Wichtig ist nur, dass die Liste vollständig ist. Erfahrungsgemäß tauchen dabei zwei bis drei Systeme auf, die niemand mehr auf dem Schirm hatte, und genau die sind später das Problem.
Was in die Anforderungsliste gehört
- Freigabeerklärung des Anwendungsherstellers, nicht nur die mündliche Aussage läuft auch
- Geforderte Laufzeitumgebung mit Mindest- und Höchstversion, also Java, PHP, Python, PostgreSQL oder .NET
- Treiber und Kernelmodule für Storage-Controller, HBA, Netzwerkkarten und GPU
- Hardware-Support-Matrix des Serverherstellers für genau dieses Modell, nicht für die Baureihe
- Agenten, die mitkommen müssen: Backup, Virenschutz, EDR, Monitoring, Patchmanagement
- Vorgaben aus Audits, etwa Bausteine des BSI IT-Grundschutz oder Nachweispflichten nach NIS2