`set_fact` writes into the play scope, so `user_user_home` outlived the loop iteration that set it and collided with any playbook variable of the same name. Worse, if the defining task were ever skipped, every following task would silently operate on the home directory of the previously processed user. Renaming it to `_unix_users_home` marks it as role internal and matches the underscore prefix already used by the other internal facts in this role. Purely mechanical, no behaviour changes. Co-authored-by: Copilot <copilot@github.com>
31 lines
1.1 KiB
YAML
31 lines
1.1 KiB
YAML
---
|
|
|
|
- name: "Determine shell rc directory"
|
|
ansible.builtin.set_fact:
|
|
# path_join examples: https://docs.ansible.com/ansible/latest/collections/ansible/builtin/path_join_filter.html#examples
|
|
_shell_rc_file: "{{ (_unix_users_home, '.bashrc.d', shell_rc_file.file) | path_join }}"
|
|
|
|
- name: "Create shell rc directory: {{ _shell_rc_file | dirname }}"
|
|
ansible.builtin.file:
|
|
path: "{{ _shell_rc_file | dirname }}"
|
|
owner: "{{ unix_user.key }}"
|
|
group: "{{ unix_user.value.group | default('users') }}"
|
|
mode: "0755"
|
|
state: "directory"
|
|
|
|
- name: "Create shell rc file: {{ _shell_rc_file }}"
|
|
ansible.builtin.template:
|
|
src: shell_rc_file.j2
|
|
dest: "{{ _shell_rc_file }}"
|
|
owner: "{{ unix_user.key }}"
|
|
group: "{{ unix_user.value.group | default('users') }}"
|
|
mode: "0644"
|
|
|
|
- name: "Source shell rc file: {{ _shell_rc_file }}"
|
|
ansible.builtin.lineinfile:
|
|
path: "{{ _unix_users_home }}/.bashrc"
|
|
line: "source \"{{ _shell_rc_file }}\""
|
|
owner: "{{ unix_user.key }}"
|
|
group: "{{ unix_user.value.group | default('users') }}"
|
|
state: "present"
|