Advertisement
Guest User

Untitled

a guest
May 17th, 2016
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.02 KB | None | 0 0
  1. {%- from "linux/map.jinja" import system with context %}
  2. {%- if system.enabled %}
  3.  
  4. {%- for user, args in system.get('user', {}).iteritems() %}
  5. {%- if user.enabled %}
  6. system_user_{{ user }}:
  7. user.present:
  8. - name: {{ user }}
  9. - fullname: {{ args.fullname }}
  10. - home: {{ args.home }}
  11. - uid: {{ args.uid }}
  12. - gid_from_name: true
  13. {%- if user.password is defined %}
  14. - password: {{ args.password }}
  15. - enforce_password: true
  16. {%-endif %}
  17. {%- if 'secondary_groups' in user %}
  18. - optional_groups:
  19. {%- for group in args['secondary_groups'] %}
  20. - {{ group }}
  21. {%- endfor %}
  22. {%- endif %}
  23. {%- if args.system is defined and args.system %}
  24. - system: True
  25. {%- else %}
  26. - shell: {{ user.get('shell', '/bin/bash') }}
  27. {%- endif %}
  28.  
  29. # ----- Add public key if present in pillar -----
  30. {%- if 'public_key' in user %}
  31. system_user_{{ user }}_public_key:
  32. file.directory:
  33. - name: /etc/ssh/keys/{{ user }}
  34. - user: root
  35. - group: root
  36. - mode: '0755'
  37. - make_dirs: true
  38. - require:
  39. - user: {{ user }}
  40. - group: {{ user }}
  41. file.managed:
  42. - name: /etc/ssh/keys/{{ user }}/authorized_keys
  43. - user: root
  44. - group: root
  45. - mode: '0644'
  46. - contents_pillar: {{ args.public_key }}
  47. {% endif %}
  48.  
  49. {%- if user.get('sudo', False) %}
  50. /etc/sudoers.d/90-salt-user-{{ name|replace('.', '-') }}:
  51. file.managed:
  52. - source: salt://linux/files/etc/sudoers.d/90-salt-user
  53. - template: jinja
  54. - user: root
  55. - group: root
  56. - mode: 440
  57. - defaults:
  58. user_name: {{ name }}
  59. - require:
  60. - user: system_user_{{ name }}
  61. {%- endif %}
  62.  
  63. {%- else %}
  64. system_user_{{ name }}:
  65. user.absent:
  66. - name: {{ name }}
  67.  
  68. system_user_home_{{ user.home }}:
  69. file.absent:
  70. - name: {{ user.home }}
  71.  
  72. /etc/sudoers.d/90-salt-user-{{ name|replace('.', '-') }}:
  73. file.absent
  74.  
  75. system_user_{{ user }}_public_key:
  76. file.absent
  77. - name: /etc/ssh/keys/{{ user }}
  78. {%- endif %}
  79. {%- endfor %}
  80.  
  81. {%- endif %}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement