Рендеринг SLS: здесь не разрешены значения отображения - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь поместить / удалить каплю в конфигурационном файле на основе переменной PILLAR. Это было помещено в highstate / init.sls моего мастера соли.

Я не вижу здесь ошибок синтаксиса или пробелов. Что я здесь не так делаю?

Здесь мой файл SLS

(% if pillar['highstateenabled'] == 'true' %)

enable_highstate:
  file.managed:
    - name: /etc/salt/minion.d/highstate.conf
    - source: salt://common/salt-minion/files/minion.d/highstate.conf
    - template: jinja

(% else %)

disable_highstate:
  file.absent:
    - name: /etc/salt/minion.d/highstate.conf

(% endif %)

И вывод во время солт-звонка:

---
local:
    Data failed to compile:
----------
    Rendering SLS 'LAB:common.salt-minion' failed: mapping values are not allowed here; line 4

---

(% if pillar['highstateenabled'] == 'true' %)

enable_highstate:    <======================
  file.managed:
    - name: /etc/salt/minion.d/highstate.conf
    - source: salt://common/salt-minion/files/minion.d/highstate.conf
    - template: jinja

[...]
---

1 Ответ

2 голосов
/ 06 мая 2019

наконец-то я сам нашел решение:

Приведенный выше код использует неправильные скобки.Вместо использования «()» это должны быть фигурные скобки «{}», и код анализируется правильно.

Ошибка рендеринга SLS не указывает на синтаксическую ошибку здесь ...

{% if pillar['highstate'] == 'enabled' %}

output:
  cmd.run:
  - name: 'echo "highstate_enabled" '

enable_highstate:
  file.managed:
    - name: /etc/salt/minion.d/highstate.conf
    - source: salt://common/salt-minion/files/minion.d/highstate.conf
    - template: jinja

{% else %}

disable_highstate:
  file.absent:
    - name: /etc/salt/minion.d/highstate.conf

{% endif %}

"иногда кажется, что вы не видите леса из-за слишком большого количества деревьев"

...