Saltstack Official Users Formula
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 lines
1.1KB

  1. {% from "users/map.jinja" import users with context -%}
  2. include:
  3. - users
  4. {%- for username, user in pillar.get('users', {}).items() if (user.absent is not defined or not user.absent) -%}
  5. {%- set user_files = pillar.get('users:' + username + ':user_files', {'enabled': False}) -%}
  6. {%- if user_files.enabled -%}
  7. {%- set user_group = pillar.get(('users:' + username + ':prime_group:name'), username) -%}
  8. {%- if user_files.source is defined -%}
  9. {%- if user_files.source.startswith('salt://') -%}
  10. {%- set file_source = user_files.source -%}
  11. {%- else -%}
  12. {%- set file_source = ('salt://' + user.user_files.source) -%}
  13. {%- endif -%}
  14. {%- else -%}
  15. {%- set file_source = ('salt://users/files/user/' + username) -%}
  16. {%- endif -%}
  17. users_userfiles_{{ username }}_recursive:
  18. file.recurse:
  19. - name: {{ user.home }}
  20. - source: {{ file_source }}
  21. - user: {{ username }}
  22. - group: {{ user_group }}
  23. - clean: False
  24. - include_empty: True
  25. - keep_symlinks: True
  26. - require:
  27. - user: users_{{ username }}_user
  28. - file: users_{{ username }}_user
  29. {% endif -%}
  30. {% endfor -%}