Солонка Доступ к столбу внутри соли ['cmd.run']
Я пытаюсь настроить состояние, которое будет проверять домашние каталоги системы и перебирать их, чтобы проверить наличие определенных файлов. Для этого я изначально написал:
{% for userdir in salt['cmd.run']('ls /home').split('\n') %}
для моей петли, и это прекрасно работает. Однако я хочу сделать его легко настраиваемым для альтернативных сред, поэтому я подумал о том, чтобы хранить местоположения домашних каталогов внутри колонны, и изменил строку на:
{% for userdir in salt['cmd.run']('ls pillar['home']').split('\n') %}
который дал Jinja syntax error: expected token 'comma', got 'home';
я предполагаю из-за двойных наборов Embeded '
"s
поэтому я попробовал:
{% for userdir in salt['cmd.run']('ls pillar["home"]').split('\n') %}
который дал мне: Rendering SLS failed: mapping values are not allowed here;
Я рассмотрел столько ситуаций петлевого столпа, сколько смогу, чтобы попытаться найти пример, из которого я могу работать, но его, похоже, не существует.
Можно ли вызвать информацию о столбе изнутри ls? Или есть лучший способ достичь этой цели?
Любая помощь будет оценена.
1 ответ
Вам просто нужно сделать ваше отображение вне строки:
{% for userdir in salt['cmd.run']('ls '+pillar['home']).split('\n') %}