Erst messen, was tatsächlich läuft
Der Schulungsinhalt ergibt sich aus dem Bestand, nicht aus einem Katalog. Zwei Stunden Inventur sparen ein halbes Jahr am Ziel vorbei.
# hosts.txt: eine Zeile je Server
while read -r h; do
info=$(ssh -n -o BatchMode=yes -o ConnectTimeout=5 "$h" \
'. /etc/os-release; echo "$PRETTY_NAME"' 2>/dev/null)
printf '%-30s %s\n' "$h" "${info:-nicht erreichbar}"
done < hosts.txt | tee inventar.txt
# Mit Ansible geht dasselbe kürzer
ansible all -m setup -a 'filter=ansible_distribution*'Das -n bei ssh ist wichtig: ohne die Option liest ssh die restliche hosts.txt von der Standardeingabe weg und die Schleife bricht nach dem ersten Server ab. Ergänze den Aufruf um systemctl list-units --type=service --state=running, dann siehst du zusätzlich, welche Dienste die Server tragen.
Was der Befund für die Qualifizierung bedeutet
| Befund | Gehört in den Plan |
|---|---|
| RHEL, Rocky oder AlmaLinux überwiegt | SELinux, firewalld, dnf und Repository-Verwaltung |
| Debian oder Ubuntu überwiegt | AppArmor, apt, netplan und automatische Sicherheitsupdates |
| Beides gemischt | Die Vereinheitlichung vorher prüfen, sonst schult ihr jedes Thema doppelt |
| Viele Container | Podman oder Docker, Logging und Registry vor klassischer Paketpflege |
| Zentrale Anmeldung an AD oder LDAP | Verzeichnisdienste und Kerberos, sonst steht das Team beim ersten Anmeldefehler still |