fix: nopasswdlogin-PAM-Zeile nicht duplizieren (Debian-Familie)

lineinfile matchte bisher nur exakten Text - Debian/LightDM liefert eine
Zeile mit identischer Wirkung, aber anderer Formatierung mit, wurde also
nicht erkannt und stattdessen dupliziert. regexp behebt das für den
present-Task; der absent-Task bleibt bewusst beim exakten String-Match,
damit er nie die von der Distribution mitgelieferte Zeile entfernt.

Gefunden bei der E2E-Verifikation auf der QEMU-Test-VM.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Thomas Stallinger 2026-08-04 15:48:52 +02:00
parent 770c3a6c95
commit 8cd3f13dac

View File

@ -29,11 +29,14 @@
password_lock: true
when: tuxflotte_state == "present"
# Debian/LightDM bringt diese Zeile bereits standardmäßig mit (idempotent,
# lineinfile dupliziert nicht) - auf Fedora/GDM muss sie ergänzt werden.
# Debian/LightDM bringt eine Zeile mit identischer Wirkung bereits
# standardmäßig mit, allerdings mit anderer Formatierung - regexp erkennt
# sie als bereits erfüllt (kein Duplikat). Auf Fedora/GDM existiert noch
# nichts Passendes, die Zeile wird frisch eingefügt.
- name: Allow passwordless login for nopasswdlogin group
ansible.builtin.lineinfile:
path: "{{ tuxflotte_guest_pam_auth_file }}"
regexp: '^auth\s+sufficient\s+pam_succeed_if\.so\s+user\s+ingroup\s+nopasswdlogin\s*$'
line: "auth sufficient pam_succeed_if.so user ingroup nopasswdlogin"
insertbefore: BOF
state: present