我尝试根据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
[...]
---
答案 0 :(得分:1)
最后我自己找到了解决方案:
上面的代码使用了错误的括号。 应该使用大括号“ {}”代替大括号“ {}”,并且正确解析了代码。
此处的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 %}
“似乎有时由于树木过多而看不到森林”