--- - name: 'Check app requirements for user "{{ owner_name }}".' ansible.builtin.fail: msg: You must set owner name. when: not owner_name - name: 'Create group "{{ owner_group }}".' ansible.builtin.group: name: "{{ owner_group }}" state: present - name: 'Create user "{{ owner_name }}".' ansible.builtin.user: name: "{{ owner_name }}" group: "{{ owner_group }}" groups: "{{ owner_extra_groups }}" shell: /bin/bash register: user_create_result - name: 'Set up user ssh keys for user "{{ owner_name }}".' ansible.posix.authorized_key: user: "{{ owner_name }}" key: "{{ item }}" state: present with_items: "{{ owner_ssh_keys }}" when: owner_ssh_keys | length > 0 - name: "Prepare env variables." ansible.builtin.set_fact: env_dict: '{{ owner_env | combine({ "CURRENT_UID": user_create_result.uid | default(owner_name), "CURRENT_GID": user_create_result.group | default(owner_group) }) }}' - name: 'Set up environment variables for user "{{ owner_name }}".' ansible.builtin.template: src: env.j2 dest: "/home/{{ owner_name }}/.env" owner: "{{ owner_name }}" group: "{{ owner_group }}" mode: "0640" - name: 'Remove from bashrc absent environment variables for user "{{ owner_name }}".' ansible.builtin.lineinfile: path: "/home/{{ owner_name }}/.bashrc" regexp: "^export {{ item.key }}=" state: absent with_dict: "{{ env_dict }}" - name: 'Include in bashrc environment variables for user "{{ owner_name }}".' ansible.builtin.lineinfile: path: "/home/{{ owner_name }}/.bashrc" regexp: "^export \\$\\(grep -v" line: 'export $(grep -v "^#" "$HOME"/.env | xargs)'