shadow
Ага
действительно работает, спасибо! заюзал .items() ибо "The dict.iteritems method has been removed in Python 3"
shadow
mitogen очень часто вылетает, иногда приходится без него :(
Div
я host_pinned частенько юзаю вместо митогена ввиду малого кол-ва хостов
Владислав
Замечательный совет, спасибо. А если у меня есть спортивные интерес, можно мне совет для развития понимания jinja и фильтров ansible?
В продолжение странного playbook: https://pastebin.com/evbC1DJA output: https://pastebin.com/EJQHD87b Закончу на этом пожалуй
Sergey
В продолжение странного playbook: https://pastebin.com/evbC1DJA output: https://pastebin.com/EJQHD87b Закончу на этом пожалуй
Хорошо, что на пастебин, и плохо, что в чат - тоже. Сюда не надо.
Владислав
В patebin только output, сейчас поправлю
Владислав
В продолжение странного playbook: https://pastebin.com/evbC1DJA output: https://pastebin.com/EJQHD87b Закончу на этом пожалуй
А вот если посередине поставить | to_yaml | from_yaml то все работает, обожаю ansible
Владислав
Привет, мне нужно создать лист объектов из списка хостов и range, но не могу придумать конструкцию те из groups.some_group нужно получить список some_objects: - host: some_host01 id: 1 - host: some_host02 id: 2 подскажите плиз, если есть идеи
Отвечая на свой вопрос: some_objects: "{{ groups.some_group | zip(range(1, (groups.some_group|length + 1))) | list | to_yaml | from_yaml | map('json_query', '{name:[0],id:[1]}') | list }}" Но делать так конечно же не стоит
Lamobot
Замечательный совет, спасибо. А если у меня есть спортивные интерес, можно мне совет для развития понимания jinja и фильтров ansible?
- set_fact: zookeeper_hosts: '{{ zookeeper_hosts|default([]) + [ dict( ["host", "id"]|zip( item )|list ) ] }}' loop: '{{ groups[zookeeper_group] | zip(range(groups[zookeeper_group]|length)|list) | list }}'
Sergey
упрлс :-)
Гайрат
mitogen
На соседнем инвентаре летает, что интересно. Подозреваю на какие-то фильтры в переменных.
Vladislav 👻
Не факт, у нас везде огонь кроме парочки специфичных систем со специфичными модулями в ansible
Vladislav 👻
Возможно сама система странная...
Gunnery
Ребята привет, подскажите пожалуйста, где и что поискать в документации (в этом вопросе поиск не моя сильная сторона) ERROR! 'with_items' is not a valid attribute for a Block - name: подключить роль xxx include_role: name: xxx apply: delegate_to: "{{ item }}" with_items: - "{{ gtp1 }}" vars: - var1: "{{val1}}" - var2 "{{val2}}" gtp1 - группа хостов, ad-hoc setup на эту группу отрабатывает нормально, или если указать один хост в плейбуке, тоже отрабатывает
Andrey
Мне кажется у тебя with_items глубже чем надо
Gunnery
есть с 2015го фича реквест на гитхабе, не реализовано пока что, и совет - использовать dynamic includes
Gunnery
Closing your most popular (by far) feature request as wontfix is pretty disappointing.
Anonymous
и with_items уже раритет
Gunnery
loop?
Anonymous
я бы наверно очень внимательно прочитал https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html
Gunnery
спасибо
Anonymous
не за что
Jungo
коллеги подскажите пож-та где посмотреть актуальный граф приоритетов переменных
Jungo
норм?
Jungo
может есть покрасивее, хочу распечатать
Отделение Bereke Bank
коллеги подскажите пож-та где посмотреть актуальный граф приоритетов переменных
https://docs.ansible.com/ansible/2.3/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable
Отделение Bereke Bank
Ой старую версию скинул. Ну ты понял где искать
Jungo
хм а вот если я делаю with_dict и у меня словарь может содержать 1 значение а может и несколько как тут выкрутиться лучше? если делаю одно значение получаю msg: with_dict expects a dict а если два то все норм
Jungo
если словаря не сущесвует то тут я сделал проверку with_dict: "{{ burp_client_custom_plan }} | default({})" when: burp_client_custom_plan is defined и прокатило но вот когда в нем будет 1 значение то все ломается и ошибка with_dict expects a dict
Anonymous
еще бы наверно прочитал https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#omitting-parameters
Jungo
Мне?
Anonymous
Ага
Jungo
Ага
Спасибо. Почитаю. Пишу роль которая разливает скрипты бэкапа. И если есть переменные бэкапа то делает настройку и крон. И для разных типов бд генерирует разные скрипты.
Anonymous
Не за что
Lamobot
with_dict артефакт/реликвия. ну, да, я зануда
https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html#with-dict
Anonymous
там чуть выше "Migrating from with_X to loop"
Anonymous
with_dict артефакт/реликвия. ну, да, я зануда
Это старый спор. И это не так
Anonymous
Никто выпиливать его не собирается
Anonymous
Но форсят на loop
Anonymous
Почему старый спор - потому что ещё Тимур ты за него топит почти год. С нулевым профитом
Anonymous
Достаточно посмотреть, как сделан loop и with_x в коде. А далее на ваше усмотрение
Anonymous
Ну лууп, при прочих равных - не даёт того же результата. Либо когда я пробовал - небыло столько примеров, так что ошибиться было как два байта переслать
Anonymous
И код - это же питон.
Anonymous
Те же пхп - только в профиль
Anonymous
Тимур умный - но тут я с ним радикально не согласен
Anonymous
Твоё право. Код есть код. Там истина.
Anonymous
Тимур умный - но тут я с ним радикально не согласен
Это не религия, а просто код. Можно посмотреть как и что реализовано. Код открыт.
Anonymous
Ой не по теме канала. Смотрел код недавно одного оч популярного экспортёре для биткоин ноды. Автор даже на докерхаб дать не рабочий пример смог, в гите тоже. Но да - код истина. Там был ответ
Anonymous
Но вопрос тогда автор чудак - и нужен ли этот код. Или это норма
Anonymous
Дают, что есть. Берем, что есть. Иногда изменяем. Как то так.
Anonymous
А в нашем споре - приём тут код, если главнее документация
Anonymous
Ансибл это все же не про велосипедистов - что чуть что новый велосипед делают
Anonymous
А в нашем споре - приём тут код, если главнее документация
Иногда из документации не все понятно и проще заглянуть в код. Это редко, но бывает
Anonymous
Ну это противоречит идеологии
Anonymous
Бери делай. И это сколько раз не сделается будет тоже
Anonymous
Если это требует смотреть код - это далеко не про ансибл
Anonymous
Ну это противоречит идеологии
Да, все мы люди. Все ошибаемся
Anonymous
Но знание - само собой полезное
Anonymous
Возвращаясь к спору. Луп - точно не замена with_items. Особенно если много старого
Anonymous
В общем и целом документация ансибл очень хороша!
Anonymous
Точнее замена. Но надо оч захотеть
Anonymous
Я не хочу эту тему "разгонять"
Anonymous
В документации есть пояснения почему loop гибче with_x
Anonymous
Даже не смотря в код
Anonymous
Т. е. Тимур не просто так топит за loop. Как то так.
Anonymous
https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html
Anonymous
Эта страница - читал. С ходу ненашел где было что loop не замена и не будет with* deprecated.
Anonymous
Но такая страница тоже есть
inqfen
Но от кого-то из core разрабов читал, что with таки будут выпилены, не скоро, но будут