Files
role-fish_shell/roles/tmux/tasks/main.yml
jonnybravo d629982afb Fix: Robusteres Filtern von Benutzer-Home-Verzeichnissen
- In 'roles/tmux/tasks/main.yml' wurde der Task zur Erstellung der
  'user_home_dirs'-Liste durch eine robustere Methode ersetzt.
  Diese verwendet Jinja2-Filter (, , ),
  um Benutzer anhand ihrer Shell, des Benutzernamens ('root' ausschließen),
  der Definition des Home-Verzeichnisses sowie des Ausschlusses von
  leeren oder nur aus '/' bestehenden Home-Verzeichnissen zu filtern.
- Die redundanten 'when'-Bedingungen im 'Tmux config block' wurden entfernt,
  da die Filterung nun zentral bei der Erstellung der Liste erfolgt.
  Dies sollte das Problem beheben, dass gültige Benutzer übersprungen werden
  und gleichzeitig die Robustheit gegen ungültige Home-Verzeichnisse erhöhen.
2026-02-03 12:26:02 +01:00

48 lines
1.4 KiB
YAML

---
- name: Install tmux
package:
name: "{{ item }}"
state: present
loop:
- "tmux"
- "git"
- name: Get all users from /etc/passwd
ansible.builtin.getent:
database: passwd
register: all_users
- name: Create a list of home directories for bash, zsh and fish users
set_fact:
user_home_dirs: >-
{{ all_users.ansible_facts.getent_passwd.values()
| selectattr(5, 'in', ['/bin/bash', '/bin/zsh', '/usr/bin/bash', '/usr/bin/fish'])
| rejectattr(0, 'eq', 'root')
| selectattr(4, 'defined')
| rejectattr(4, 'eq', '')
| rejectattr(4, 'eq', '/')
| map(attribute=4)
| list }}
- name: Display the list of collected home directories
ansible.builtin.debug:
var: user_home_dirs
- name: Tmux config block
block:
- name: Tmux config Play
include_tasks: tmux_config.yml
loop: "{{ user_home_dirs }}"
# ========================================================================
# EXAMPLE: Here is how you can reuse the 'user_home_dirs' list
# This example task iterates through the list of home directories
# and creates a file named 'test.txt' in each directory.
# ========================================================================
# - name: Example - Create a file in each home directory
# ansible.builtin.file:
# path: "{{ item }}/test.txt"
# state: touch
# mode: '0644'
# loop: "{{ user_home_dirs }}"