Переменные Jinja в map.jinja

Я пытаюсь установить динамическую переменную в map.jinja, но она настроена неправильно.

У меня есть версия программного обеспечения, которую я хочу установить через зерно и подобрать ее на карте для динамического выбора каталогов. Я использую версию ключевого слова, как показано ниже.

карта.джиндзя

{% set version = grains.get('version', '') %}
{% set myapp = salt['grains.filter_by']({
    'RedHat': {
        'sudoers': {
            'name': '/etc/sudoers',
            'text':['appuser ALL=(root) NOPASSWD: /bin/sh /usr/opt/HTTP{{ version }}/bin/apachectl'],
        },
    },
}, merge=salt['pillar.get']('myapp:lookup')) %}

И в результате только включенный тег шаблона jinja не отображается в номере версии...

соль '10.0.1.15' state.show_sls myapp

/etc/sudoers:
    ----------
    __env__:
        base
    __sls__:
        myapp.accounts
    file:
        |_
            ----------
            text:
                |_
                    ----------
                    appuser ALL=(root) NOPASSWD: /bin/sh /usr/opt/HTTP{{ version }}/bin/apachectl

Обратите внимание на отсутствие изменений в строке.... она не отображается

Моя строка импорта:

{% from "myapp/map.jinja" import myapp %}
/etc/sudoers:
    file.append:
        - text:
            {% for item in myapp.sudoers.text -%}
            - {{ item }}
            {% endfor %}

person Ryan Currah    schedule 13.11.2014    source источник


Ответы (1)


Оказывается, мне нужно было указать {{ item }} в файле состояния.

{% from "myapp/map.jinja" import myapp %} /etc/sudoers: file.append: - text: {% for item in myapp.sudoers.text -%} - '{{ item }}' {% endfor %}
person Ryan Currah    schedule 13.11.2014