Files
salt-states/users/init.sls
2023-12-29 23:25:04 -05:00

48 lines
1.2 KiB
Plaintext

{% if salt.pillar.get('manage_root_bashrc', False) %}
/root/.bashrc:
file.managed:
- source: 'salt://users/files/bashrc.jinja'
- template: jinja
- user: root
- group: root
- mode: 0640
- context:
bashrc_user: root
{% endif %}
{% for user, config in salt.pillar.get('users', {}).items() %}
{{ user }}_user:
user.present:
- name: {{ user }}
- shell: {{ config.get('shell', '/bin/bash') | yaml_encode }}
{% for key, val in config.items() %}
{% if key not in ('shell', 'manage_bashrc') %}
- {{ key }}: {{ val | tojson }}
{% endif %}
{% endfor %}
{% if config.get('manage_bashrc', False) %}
{% set homedir = salt.user.info(user).get('home', None) %}
{% if homedir is none %}
{{ "~%s/.bashrc" | format(user) }}:
test.fail_without_changes:
- name: {{ "No homedir for %s - if they were created in this run, run this state again" | format(user) }}
{% else %}
{{ homedir }}/.bashrc:
file.managed:
- source: 'salt://users/files/bashrc.jinja'
- template: jinja
- user: {{ user }}
- group: {{ user }}
- mode: 0640
- context:
bashrc_user: {{ user }}
- require:
- user: {{ user }}_user
{% endif %}
{% endif %}
{% endfor %}