|
12345678910111213141516171819202122232425262728293031323334 |
- include:
- - openssh
-
- {% from "openssh/map.jinja" import mapdata with context -%}
- {%- set openssh = mapdata.openssh %}
- {%- set sshd_config = mapdata.sshd_config %}
- {%- set authorized_keys_file = sshd_config.get("AuthorizedKeysFile", None) %}
-
- {%- for store, config in openssh.get("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 %}
|