Я пытаюсь использовать цикл 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 debug state.show_highstate» и посмотрю на отображаемый вывод top.sls, при использовании команды salt['file.find'] строка комментария будет отображаться как
#[u'expected']
Но если я использую жестко закодированный список, комментарии становятся
#['expected']
Кроме того, визуализированные блоки выглядят одинаково.
Я использую версию 2018.3.0 (Кислород).
Что-то не так со строкой salt['file.find']?
Есть ли другой, лучший способ, который я должен использовать, чтобы получить список каталогов в /srv/salt/projects на мастере соли?