Я пытаюсь использовать цикл for, как показано ниже в моем файле /srv/salt/top.sls.
{%- set prjlist = salt['file.find']('/srv/salt/projects',type='d',mindepth=1,maxdepth=1,print='name') %}
# {{ prjlist }}
{%- for prj in prjlist %}
'role:{{ prj }}_server':
- match: pillar
- projects.{{ prj }}.server
{%- endfor %}
Когда я запускаю "salt -l debug myhost state.apply test = True"не соответствует ожидаемой роли с блоком for выше.Однако если я заменю присвоение prjlist жестко закодированным списком, который find.file должен возвращать подобно
{%- set prjlist = ['expected'] %}
, тогда соль найдет роль, как и ожидалось ¯ \ _ (⊙︿⊙) _ / ¯.
Если я выполняю «отладочный вызов salt-call -l state.show_highstate» и смотрю на визуализированный вывод top.sls, то при использовании команды salt ['file.find'] строка комментария отображается как
#[u'expected']
Но если я использую жестко закодированный список, комментарии становятся
#['expected']
Кроме того, визуализированные блоки выглядят одинаково.
Я использую версию 2018.3.0 (Oxygen).
Что-то не так с линией соли ['file.find']?
Есть ли другой, лучший способ, который я должен использовать, чтобы получить список каталогов в / srv / salt / projects на salt-master?