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