|
- {%- macro print_name(identifier, key) -%}
- {%- if 'name' in key %}
- {{ key['name'] }}
- {%- else %}
- {{ identifier }}
- {%- endif %}
- {%- endmacro -%}
-
- {%- macro print_ssh_auth(identifier, key) -%}
- {%- if 'user' in key %}
- - user: {{ key['user'] }}
- {%- else %}
- - user: {{ identifier }}
- {%- endif %}
- {%- if 'source' in key %}
- - source: {{ key['source'] }}
- {%- else %}
- {%- if 'enc' in key %}
- - enc: {{ key['enc'] }}
- {%- endif -%}
- {%- if 'comment' in key %}
- - comment: {{ key['comment'] }}
- {%- endif -%}
- {%- if 'options' in key %}
- - options: {{ key['options'] }}
- {%- endif -%}
- {%- endif %}
- {%- endmacro -%}
-
- include:
- - openssh
- {%- from "openssh/map.jinja" import mapdata with context -%}
- {%- set openssh = mapdata.openssh %}
- {%- set sshd_config = mapdata.sshd_config %}
-
- {%- set auth = openssh.get('auth', {}) -%}
- {%- for identifier,keys in auth.items() -%}
- {%- for key in keys -%}
- {% if 'present' in key and key['present'] %}
- {{ print_name(identifier, key) }}:
- ssh_auth.present:
- {{ print_ssh_auth(identifier, key) }}
- {%- if sshd_config.get("AuthorizedKeysFile", None) %}
- - config: '{{ sshd_config['AuthorizedKeysFile'] }}'
- {% endif %}
- - require:
- - service: {{ openssh.service }}
- {%- else %}
- {{ print_name(identifier, key) }}:
- ssh_auth.absent:
- {{ print_ssh_auth(identifier, key) }}
- {%- if sshd_config.get("AuthorizedKeysFile", None) %}
- - config: '{{ sshd_config['AuthorizedKeysFile'] }}'
- {% endif -%}
- {%- endif -%}
- {%- endfor -%}
- {%- endfor -%}
|