109 lines
2.4 KiB
Plaintext
109 lines
2.4 KiB
Plaintext
|
|
{% for user in salt.pillar.get('authorized_keys').keys() %}
|
|
{% set home = '' if user == 'root' else '/home' %}
|
|
|
|
{% if user != 'root' %}
|
|
# FIXME - both config and auth keys need this and this logic is dumb
|
|
{{ home }}/{{ user }}/.ssh:
|
|
file.directory:
|
|
- user: {{ user }}
|
|
- group: {{ user }}
|
|
- mode: 700
|
|
{% endif %}
|
|
|
|
{{ home }}/{{ user }}/.ssh/authorized_keys:
|
|
file.managed:
|
|
- template: jinja
|
|
- source: salt://users/files/authorized_keys.jinja
|
|
- user: {{ user }}
|
|
- group: {{ user }}
|
|
- mode: 400
|
|
- context:
|
|
user: {{ user }}
|
|
- require:
|
|
- file: {{ home }}/{{ user }}/.ssh
|
|
|
|
{% endfor %}
|
|
|
|
{% 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 %}
|
|
|
|
/root/.ssh:
|
|
file.directory:
|
|
- user: root
|
|
- group: root
|
|
- mode: 700
|
|
|
|
{% if salt.pillar.get("ssh_hosts:root", None) is not none or salt.pillar.get('restic:client:environ:RESTIC_REPOSITORY', '').startswith('sftp:') %}
|
|
/root/.ssh/config:
|
|
file.managed:
|
|
- source: 'salt://users/files/ssh_hosts.jinja'
|
|
- template: jinja
|
|
- user: root
|
|
- group: root
|
|
- mode: 400
|
|
- context:
|
|
user: root
|
|
- require:
|
|
- file: /root/.ssh
|
|
{% endif %}
|
|
|
|
{% for group in salt.pillar.get('sys_groups') %}
|
|
{{ group }}:
|
|
group.present:
|
|
- system: True
|
|
{% endfor %}
|
|
|
|
{% for user, data in salt.pillar.get('users', {}).items() %}
|
|
|
|
{{ user }}_user:
|
|
user.present:
|
|
- name: {{ user }}
|
|
- shell: {{ data.get('shell', '/bin/bash')|yaml_encode }}
|
|
{% if 'groups' in data %}
|
|
- groups:
|
|
{% for group in data['groups'] %}
|
|
- {{ group|yaml_encode }}
|
|
{% endfor %}
|
|
{% endif %}
|
|
|
|
{% if data.get('manage_bashrc', False) %}
|
|
/home/{{ user }}/.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 %}
|
|
|
|
{% if salt.pillar.get('ssh_hosts', {}).get(user, None) is not none %}
|
|
/home/{{ user }}/.ssh/config:
|
|
file.managed:
|
|
- source: 'salt://users/files/ssh_hosts.jinja'
|
|
- template: jinja
|
|
- user: {{ user }}
|
|
- group: {{ user }}
|
|
- mode: 0400
|
|
- context:
|
|
user: keiran
|
|
- require:
|
|
- file: /home/{{ user }}/.ssh
|
|
{% endif %}
|
|
|
|
{% endfor %}
|
|
|