Я пытаюсь разобрать текстовый файл построчно внутри цикла for. Я могу нормально анализировать данные JSON, но, казалось бы, более простая задача здесь не выполняется. Похоже, что Джинджа не проводит разграничение на основе перевода строки.
В моей книге воспроизведения YAML я объявил исходный файл и функцию поиска (запроса):
vars:
myfile: /some/text/file.txt
myfile_list: "{{ query('file', myfile) }}"
Исходный файл 'myfile'это просто список IP-адресов в формате CIDR:
1.2.3.4/32
5.6.7.8/32
10.20.30.0/24
В файле шаблона Jinja2 я запускаю цикл for:
{% for line in myfile_list %}
permit ip {{ line }} any
{% endfor %}
Требуемый вывод:
permit ip 1.2.3.4/32 any
permit ip 5.6.7.8/32 any
permit ip 10.20.30.0/24 any
Вместо этого я получаю это:
permit ip 1.2.3.4/32
5.6.7.8/32
10.20.30.0/24 any
Я попробовал вместо этого плагин поиска. Установка wantlist = True. После вызова поиска с использованием фильтра списка. Я получаю либо один символ в строке, либо один фрагмент текста, как показано выше. Если я запускаю команду оболочки Linux «file» для моего исходного файла, это выглядит как «ASCII текст».