We provide a new `_mapdata` state which generate a `/tmp/salt_mapdata_dump.yaml` to be validated by `Inspec`.tags/v1.3.0
@@ -230,6 +230,13 @@ To completely disable adding IP addresses:: | |||
Manages the system wide ``/etc/ssh/moduli`` file. | |||
``openssh._mapdata`` | |||
^^^^^^^^^^^^^^^^^^ | |||
Testing state which dumps the ``map.jinja`` values in ``/tmp/salt_mapdata_dump.yaml``. | |||
This state is not called by any include but is mostly used by kitchen and Inspec infrastructure to validate ``map.jinja``. | |||
Testing | |||
------- | |||
@@ -0,0 +1,13 @@ | |||
# yamllint disable rule:indentation rule:line-length | |||
# {{ grains.get('osfinger', grains.os) }} | |||
--- | |||
{#- use salt.slsutil.serialize to avoid encoding errors on some platforms #} | |||
{{ salt['slsutil.serialize']( | |||
'yaml', | |||
map, | |||
default_flow_style=False, | |||
allow_unicode=True, | |||
) | |||
| regex_replace("^\s+'$", "'", multiline=True) | |||
| trim | |||
}} |
@@ -0,0 +1,25 @@ | |||
# -*- coding: utf-8 -*- | |||
# vim: ft=sls | |||
--- | |||
{#- Get the `tplroot` from `tpldir` #} | |||
{%- set tplroot = tpldir.split('/')[0] %} | |||
{%- from tplroot ~ "/map.jinja" import openssh with context %} | |||
{%- from tplroot ~ "/map.jinja" import ssh_config with context %} | |||
{%- from tplroot ~ "/map.jinja" import sshd_config with context %} | |||
{%- set output_file = '/tmp/salt_mapdata_dump.yaml' %} | |||
{%- set map = { | |||
'openssh': openssh, | |||
'ssh_config': ssh_config, | |||
'sshd_config': sshd_config, | |||
} %} | |||
{%- do salt['log.debug']( map | yaml(False) ) %} | |||
{{ tplroot }}-mapdata-dump: | |||
file.managed: | |||
- name: {{ output_file }} | |||
- source: salt://{{ tplroot }}/_mapdata/_mapdata.jinja | |||
- template: jinja | |||
- context: | |||
map: {{ map | yaml }} |