Солонка Доступ к столбу внутри соли ['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') %}

Другие вопросы по тегам