wlan-firmware: bei absent nie Firmware entfernen, entfernte Pakete reparieren
KRITISCH (E2E 09.10.2026): der Server schickt fuer jedes Katalog-Merkmal ausserhalb des Workspace "absent" (ADR-0010). Die Rolle machte daraus apt remove linux-firmware - auf jedem Geraet, inkl. Kernel-Metapakete. WLAN-Firmware weg, sichtbar erst nach dem naechsten Neustart (betroffen: VM 107, Liebherr-35, MS Gaissach). Jetzt: absent entfernt nichts mehr; Pakete, die ein frueherer remove-Lauf laut apt-Historie entfernt hat, werden wieder installiert. Auf Liebherr-35 verifiziert (Firmware + Kernel- Metapakete zurueck, iwlwifi laedt Firmware 89, WLAN verbunden). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
7d728faa03
commit
49b6f4536a
1 file changed
+34
-4
@@ -32,11 +32,41 @@
|
||||
mode: "0644"
|
||||
when: tuxflotte_state == "present"
|
||||
|
||||
- name: Proprietäre WLAN-/Netzwerk-Firmware entfernen (Auftrag abgewählt)
|
||||
# KRITISCHER Fund (E2E 09.10.2026): der Server schickt fuer jedes
|
||||
# Katalog-Merkmal, das nicht im Workspace ist, "absent" (ADR-0010). Hier
|
||||
# fuehrte das zu "apt remove linux-firmware" auf JEDEM Geraet - inklusive
|
||||
# der Kernel-Metapakete (linux-generic-hwe-*), die davon abhaengen. Die
|
||||
# WLAN-Firmware war danach weg, sichtbar erst nach dem naechsten Neustart
|
||||
# (der Treiber hatte sie beim Booten schon geladen). Firmware gehoert zum
|
||||
# Grundsystem und wird deshalb bei "absent" NIE entfernt.
|
||||
#
|
||||
# Reparatur fuer betroffene Geraete: genau die Pakete wieder installieren,
|
||||
# die der fruehere "remove linux-firmware"-Lauf laut apt-Historie entfernt
|
||||
# hat (Firmware + Kernel-Metapakete). Laeuft in beiden Zustaenden.
|
||||
- name: Find packages removed by an earlier firmware removal (apt history)
|
||||
ansible.builtin.shell: |
|
||||
set -o pipefail
|
||||
for f in /var/log/apt/history.log /var/log/apt/history.log.*; do
|
||||
[ -e "$f" ] || continue
|
||||
case "$f" in *.gz) zcat "$f" ;; *) cat "$f" ;; esac
|
||||
done | awk '
|
||||
/^Commandline: .* remove (linux-firmware|firmware-linux-nonfree)$/ { f = 1; next }
|
||||
f && /^Remove: / { sub(/^Remove: /, ""); print; f = 0 }
|
||||
/^End-Date/ { f = 0 }' |
|
||||
sed 's/([^)]*)//g; s/,/\n/g' | sed 's/^ *//; s/ *$//; s/:[a-z0-9]*$//' | grep -v '^$' | sort -u
|
||||
args:
|
||||
executable: /bin/bash
|
||||
register: tuxflotte_firmware_entfernt
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
|
||||
- name: Reinstall firmware and kernel packages removed earlier (Reparatur)
|
||||
ansible.builtin.apt:
|
||||
name: "{{ tuxflotte_firmware_paket }}"
|
||||
state: absent
|
||||
when: tuxflotte_state == "absent"
|
||||
name: "{{ tuxflotte_firmware_entfernt.stdout_lines }}"
|
||||
state: present
|
||||
update_cache: true
|
||||
cache_valid_time: 3600
|
||||
when: tuxflotte_firmware_entfernt.stdout_lines | length > 0
|
||||
|
||||
- name: wlan-firmware-Marker entfernen (Auftrag abgewählt)
|
||||
ansible.builtin.file:
|
||||
|
||||
Reference in new issue
Block a user