Bläddra i källkod

feat(map): generate a YAML file to validate `map.jinja`

We provide a new `_mapdata` state which generate a
`/tmp/salt_mapdata_dump.yaml` to be validated by `Inspec`.
tags/v1.3.0
Daniel Dehennin 4 år sedan
förälder
incheckning
e4ab335077
3 ändrade filer med 45 tillägg och 0 borttagningar
  1. +7
    -0
      docs/README.rst
  2. +13
    -0
      openssh/_mapdata/_mapdata.jinja
  3. +25
    -0
      openssh/_mapdata/init.sls

+ 7
- 0
docs/README.rst Visa fil

@@ -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
-------


+ 13
- 0
openssh/_mapdata/_mapdata.jinja Visa fil

@@ -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
}}

+ 25
- 0
openssh/_mapdata/init.sls Visa fil

@@ -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 }}

Laddar…
Avbryt
Spara