{% macro user_present(username, details, extra_groups=None) %} user_{{ username }}: group.present: - name: {{ username }} user.present: - name: {{ username }} - fullname: {{ details.full_name }} - password: {{ details.password }} - shell: {{ details.shell }} {% if extra_groups %} - groups: {% for group in extra_groups %} - {{ group }} {% endfor %} {% endif %} - gid_from_name: True - createhome: True - require: - group: {{ username }} ssh_key_{{ username }}: ssh_auth.present: - user: {{ username }} - names: {% for ssh_key in details['ssh_keys'] %} - {{ ssh_key }} {% endfor %} gitenv_{{ username }}: file.managed: - name: ~{{ username }}/.gitenv - contents: | { "GIT_AUTHOR_NAME": "{{ details.full_name }}", "GIT_AUTHOR_EMAIL": "{{ details.email_address }}", "GIT_COMMITTER_NAME": "{{ details.full_name }}", "GIT_COMMITTER_EMAIL": "{{ details.email_address }}" } {% endmacro %}