{{ item }}
{% endfor %}
который из списка генерирует список серверов
ntp_servers:
- "0{{ '.' + ntp_area if ntp_area else '' }}.pool.ntp.org iburst"
- "1{{ '.' + ntp_area if ntp_area else '' }}.pool.ntp.org iburst"
- "2{{ '.' + ntp_area if ntp_area else '' }}.pool.ntp.org iburst"
- "3{{ '.' + ntp_area if ntp_area else '' }}.pool.ntp.org iburst"
И все работало, но мне нужно добавить вариативность
- name: Set ntp server list Duss
set_fact:
ntp_servers: >
"{% if location == '1' %}
- "duss-adds-01.blabla.LOC iburst minpoll 5 maxpoll 7"
- "duss-adds-01.blabla.LOC iburst minpoll 5 maxpoll 7"
{% else %}
- "test"
- "0{{ '.' + ntp_area if ntp_area else '' }}.pool.ntp.org iburst"
{% endif %}"
и в таком виде, он список генерирует но записывает в файл все символы с новой строки вот так
+pool
+pool
+pool "
+pool t
+pool e
+pool s
+pool t
+pool "
+pool
.....
Как ему сделать чтобы он не разбивал строку?
Где-то у тебя ntp_servers стал строкой, а не списком: питончик считает строку == список символов Читай про ntp_servers: > - что есть > в ямле видимо эта шняга возвращает строку :(
а как его переубедить я не пойму. ntp_servers тут просто переменная которая наполняется
Вообще - пытаться программировать в ансибле - плохой путь. Он не для этого - постоянно такие косяки и непонятки (ямл на джинже сидит и кто кем погоняет - пойди разберись) Пробуй тоже переформулировать задачу. Может кучку тасков написать с - loop, может еще как. Я убедился что сложные конструкции сложно писать и сложно поддерживать - сам через полгода не вспомнишь что тут тебя озарило.
дак сама логическая конструкция работает, оно отдает верный список. Но его разбивает по 1 символу
потомушто строка. я предлагаю не биться "а как не строку?" а вынести программирование в конфиги - задавать нужные элементы для нужных хостов/локаций. кмк будет более гибко - хоп новый хост появился - что ты будешь делать? писать {% elif location == '2' %} ? а так - для хоста добавил нужное в инвенторях и профит, отдыхай
Оно не отдает вам список. У вас из жижи получается строка, которая для интерпретатора ямла может выглядеть как список. А может и нет.
Обсуждают сегодня