JustPaste.it

#Multiple files.

# init.sls for users.

{% for user, args in pillar.get('users', {}).items() %}
{{user}}:
  group:
    - present
  user.present:
    - fullname: {{ args['fullname'] }}
    - shell: /bin/bash
    - home: /home/{{user}}
    - password: #hidden hash.
    - enforce_password: True
    - groups:
      - {{user}}
  ssh_auth.present:
    - user: {{user}}
    - source: salt://.ssh_keys/{{user}}.authkey
    - config: '%h/.ssh/authorized_keys'

    {% if args['admin'] == True %}
    # Need to get sudoers here! <---------------------------------------------
    {% endif %}
{% endfor %}

 

# pillar/users.sls

users:
  user1:
    fullname: I am user1
    admin: True

  user2:
    fullname: I am user2
    admin: True

  user3:
    fullname: I am user3
    admin: False

 

# pillar/sudoers.sls

sudoers:
  users:
    user1:
      - 'ALL=(ALL:ALL) ALL'
    user2:
      - 'ALL=(ALL) ALL'
      - 'ALL=(root) ALL'
    user3:
      - 'ALL=(ALL) ALL'
      - 'ALL=(root) ALL'

# Sudoers is provided by: https://github.com/saltstack-formulas/sudoers-formula