From 42fc2cdf588705b45ff8b45e92a73a6457bbff25 Mon Sep 17 00:00:00 2001 From: Christoph Date: Mon, 27 Oct 2025 23:16:48 +0100 Subject: [PATCH] update.. --- roles/common/tasks/users-systemfiles.yml | 106 +++++++++++++++-------- 1 file changed, 70 insertions(+), 36 deletions(-) diff --git a/roles/common/tasks/users-systemfiles.yml b/roles/common/tasks/users-systemfiles.yml index cc812c6..5877ee2 100644 --- a/roles/common/tasks/users-systemfiles.yml +++ b/roles/common/tasks/users-systemfiles.yml @@ -354,27 +354,54 @@ tags: - bash -- name: (users-systemfiles.yml) Check if .vim directory exists for default users - local_action: stat path={{ inventory_dir }}/files/homedirs/{{ item.name }}/.vim - with_items: "{{ default_user }}" +# 1) Lokal prüfen, ob ~/.vim existiert +- name: (users-systemfiles.yml) stat local .vim for each user + ansible.builtin.stat: + path: "{{ inventory_dir }}/files/homedirs/{{ item.name }}/.vim" + delegate_to: localhost + become: false + loop: "{{ default_user }}" + register: dotvim_stats loop_control: - label: '{{ item.name }}' - register: local_template_dir_dotvim_default_user + label: "{{ item.name }}" +# 2) Wenn vorhanden, .vim-Verzeichnis ins Home des Users kopieren - name: (users-systemfiles.yml) copy .vim directory if it exists - copy: - src: "{{ inventory_dir + '/files/homedirs/' + item.item.name + '/.vim' }}" - dest: "~{{ item.item.name }}" - owner: "{{ item.item.name }}" - group: "{{ item.item.name }}" - mode: 0644 - with_items: "{{ local_template_dir_dotvim_default_user.results }}" + ansible.builtin.copy: + # Wichtig: KEINE verschachtelten {{ ... }} im String + src: "{{ inventory_dir }}/files/homedirs/{{ user.name }}/.vim" + dest: "~{{ user.name }}/" + mode: preserve # oder weglassen; 0644 wäre für Verzeichnisse falsch + become: true + loop: "{{ default_user | zip(dotvim_stats.results) | list }}" loop_control: - label: '{{ item.item.name }}' + label: "{{ user.name }}" when: - - item.stat.exists - tags: - - vim + - stat_result.stat.exists | bool + vars: + user: "{{ item.0 }}" + stat_result: "{{ item.1 }}" + tags: [vim] + + +# 3) Ownership/Gruppe rekursiv korrigieren (falls gewünscht/erforderlich) +- name: (users-systemfiles.yml) ensure ownership on ~/.vim recursively + ansible.builtin.file: + path: "~{{ user.name }}/.vim" + owner: "{{ user.name }}" + group: "{{ user.name }}" + recurse: true + state: directory + become: true + loop: "{{ default_user | zip(dotvim_stats.results) | list }}" + loop_control: + label: "{{ user.name }}" + when: + - stat_result.stat.exists | bool + vars: + user: "{{ item.0 }}" + stat_result: "{{ item.1 }}" + tags: [vim] # -- # -- root user @@ -387,8 +414,6 @@ delegate_to: localhost become: false register: vimrc_root_stat - when: - - ansible_facts['distribution'] == "CentOS" # 2) Wenn vorhanden, kopieren wir sie nach /root/.vimrc auf dem Zielhost - name: copy root .vimrc if it exists @@ -400,30 +425,39 @@ mode: '0644' become: true when: - - ansible_facts['distribution'] == "CentOS" - vimrc_root_stat.stat.exists tags: - bash +# 1) Lokal prüfen, ob ./files/homedirs/root/.vim existiert +- name: (users-systemfiles.yml) stat local .vim for root + ansible.builtin.stat: + path: "{{ inventory_dir }}/files/homedirs/root/.vim" + delegate_to: localhost + become: false + register: root_dotvim_stat + tags: [vim] -- name: (users-systemfiles.yml) Check if local template directory .vim exists for user root - local_action: stat path={{ inventory_dir }}/files/homedirs/root/.vim - register: local_template_dir_vim_root - with_items: 'root' - loop_control: - label: 'root' +# 2) Wenn vorhanden, nach /root/ kopieren +- name: (users-systemfiles.yml) copy root .vim directory if it exists + ansible.builtin.copy: + src: "{{ inventory_dir }}/files/homedirs/root/.vim" + dest: "/root/" + mode: preserve # oder weglassen; nicht 0644 bei Verzeichnissen + become: true + when: + - root_dotvim_stat.stat.exists | bool + tags: [vim] -- name: (users-systemfiles.yml) copy .vim directory for user root if it exists - copy: - src: "{{ inventory_dir + '/files/homedirs/root/.vim' }}" - dest: "/root" +# 3) Ownership sicherstellen (rekursiv) +- name: (users-systemfiles.yml) ensure ownership on /root/.vim recursively + ansible.builtin.file: + path: "/root/.vim" owner: "root" group: "root" - mode: 0644 - with_items: "{{ local_template_dir_vim_root.results }}" - loop_control: - label: 'root' + recurse: true + state: directory + become: true when: - - item.stat.exists - tags: - - vim + - root_dotvim_stat.stat.exists | bool + tags: [vim]