169 похожих чатов

Привет, нужна подсказка. Есть код {% for item in ntp_servers %} pool

{{ 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
.....
Как ему сделать чтобы он не разбивал строку?

6 ответов

8 просмотров

Где-то у тебя ntp_servers стал строкой, а не списком: питончик считает строку == список символов Читай про ntp_servers: > - что есть > в ямле видимо эта шняга возвращает строку :(

Yaroslav-Sapak Автор вопроса
Вадим Шандринов
Где-то у тебя ntp_servers стал строкой, а не списк...

а как его переубедить я не пойму. ntp_servers тут просто переменная которая наполняется

Yaroslav Sapak
а как его переубедить я не пойму. ntp_servers тут ...

Вообще - пытаться программировать в ансибле - плохой путь. Он не для этого - постоянно такие косяки и непонятки (ямл на джинже сидит и кто кем погоняет - пойди разберись) Пробуй тоже переформулировать задачу. Может кучку тасков написать с - loop, может еще как. Я убедился что сложные конструкции сложно писать и сложно поддерживать - сам через полгода не вспомнишь что тут тебя озарило.

Yaroslav-Sapak Автор вопроса
Вадим Шандринов
Вообще - пытаться программировать в ансибле - плох...

дак сама логическая конструкция работает, оно отдает верный список. Но его разбивает по 1 символу

Yaroslav Sapak
дак сама логическая конструкция работает, оно отда...

потомушто строка. я предлагаю не биться "а как не строку?" а вынести программирование в конфиги - задавать нужные элементы для нужных хостов/локаций. кмк будет более гибко - хоп новый хост появился - что ты будешь делать? писать {% elif location == '2' %} ? а так - для хоста добавил нужное в инвенторях и профит, отдыхай

Yaroslav Sapak
дак сама логическая конструкция работает, оно отда...

Оно не отдает вам список. У вас из жижи получается строка, которая для интерпретатора ямла может выглядеть как список. А может и нет.

Похожие вопросы

Обсуждают сегодня

@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Заметил в ghci 9.4.8: > :t (<*>) @((->)_) (<*>) @((->)_) :: (w -> (a -> b)) -> (w -> a) -> w -> b Разве не должно (w -> (a -> b)) быть записано как (w -> a -> b)? Это баг, ил...
Михаил
13
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Any electron dev here?
Sayanth Tezro
12
Подобного рода ;Следующие три строки это директивы ассемблера, ;которые можно не задавать, т.к.работаем в Visual Studio. ;Символ ";" - это начало однострочного комментария ...
Егор Анелькин
3
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Кто-нибудь знает почему SPM клонирует репо целиком? Некоторые репы просто огромные, как та же swift-syntax которая нужна для использования макросов. Сначала подумал, что это...
iMike
6
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
Привет. Я верно понимаю, что в определении класса Монад m — зафиксирован (к тому же поскольку это моноид в категории эндофункторов). Т.е. используя байнд я не могу перемещать...
Arseny
5
Карта сайта