|
- include:
- - openssh
-
- {% from "openssh/map.jinja" import openssh with context -%}
- {%- set openssh_pillar = salt["pillar.get"]("openssh", {}) -%}
- {%- set authorized_keys_file = salt["pillar.get"]("sshd_config:AuthorizedKeysFile", None) %}
-
- {%- for store, config in salt["pillar.get"]("openssh:auth_map", {}).items() %}
- {%- set store_base = config["source"] %}
- # SSH store openssh:auth_map:{{ store }}
- {%- for user, keys in config.get("users", {}).items() %}
- {%- for key, key_cfg in keys.items() %}
- "ssh_auth--{{ store }}--{{ user }}--{{ key }}":
- {%- set present = key_cfg.get("present", True) %}
- {%- set options = key_cfg.get("options", []) %}
- {%- if present %}
- ssh_auth.present:
- - require:
- - service: {{ openssh.service }}
- {%- else %}
- ssh_auth.absent:
- {%- endif %}
- - user: {{ user }}
- - source: {{ store_base }}/{{ key }}.pub
- {%- if authorized_keys_file %}
- - config: "{{ authorized_keys_file }}"
- {%- endif %}
- {%- if options %}
- - options: "{{ options }}"
- {%- endif %}
- {%- endfor %}
- {%- endfor %}
- {%- endfor %}
|