Timur
Это понятно. Непонятно - почему при обновлении роли сразу всем обязательно нужно requirements обновлять?
inqfen
Ну в общем есть роль
a версии 1.1.1 , она требует роль б версии 1.0.1 и роль в версии 1.2.1
я обновил роль а, до версии 1.2.1, теперь для нее требуется б версии 1.2.0 и в версии 1.2.1
Timur
Старая версия же никуда не девается
inqfen
в итоге если кто-то обновляет у себя версию моей роли ему нужно читать, а какие версии сейчас у зависимых ролей
inqfen
А так это сразу в meta прописано и вытягивается нужной версии
George
inqfen
нет
Timur
George
тогда я тебя прощаю )
Timur
Обновил роль - обновилась requirements
inqfen
Будет requirements в плейбуке, который должен выкачать роли, потом снова выкачать зависимые для них роли
George
сделай рекурсивный выкачиватор
George
(первое правило питон программиста - никогда не пытайся сделать системы для рекурсивного и бесконфликтного резолва зависимостей чего бы то ни было)
Timur
Timur
Обновляйте один файл для плейбуки со всеми реками - и все
inqfen
типа ansible-galaxy install -p roles -r requirements.yml
find ./roles/ -name requirements.yml -type f -exec ansible-galaxy -install -p ../roles {}
Timur
Timur
Просто держите requirements в одной репе с плейбукой для всех ролей
inqfen
а если обновит только версию моей роли - будет работать некорректно
Timur
inqfen
Timur
inqfen
ну их может быть несколько десятков и еще раз - в подходе с dependencies я говорю кому-то - я это роль обновил на 1.2.1, можешь юзать, в подходе с перечиислением в одном requirements - я обновил роль до версии такой-то иди и смотри зависимости и не проеби
inqfen
ansible через пип же когда ставишь тебе не нужно отдельно прописывать джинджу, pyaml и все остальное
inqfen
И это логично, это зависимости. которые в самом пакете определены
Timur
inqfen
И в композере и везде так же
Timur
Никто же не заставляет сразу все обновлять
inqfen
Timur
Timur
А не каждый пишет свою плейбуку для установки ансибла
Timur
inqfen
ты когда deb пакет делаешь, зависимости в пакете описываешь или берешь пару пакетов и зависимости вне их пишешь?
Отделение Bereke Bank
Подскажите по тупому вопросу. Как обойти ошибку template error while templating string: unexpected char u'$'? 😊 он ругается на template-ы alertmanager-а
Timur
ansible-galaxy умеет выкачивать зависимости из многих файлов сразу
Timur
С инклудами
Timur
Прописывайте в requirements инклуды для каждой роли
Отделение Bereke Bank
Timur
Timur
С плейбукой
inqfen
Timur
inqfen
есть роль, которая должна быть самодостаточной и реюзаемой
Timur
Роли отдельно, плейбуки отдельно
inqfen
А я зависимости роли уношу в другое место
inqfen
inqfen
каждая роль в своем
inqfen
есть плейбуки, каждый в своем репе
Timur
inqfen
есть роли, каждая так же отдельно, выкачиваются через requirements
George
inqfen
Еще раз - зависимости для deb пакета ты в пакет пишешь или куда?
inqfen
Или мне когда я ставлю пакет нужно куда-то пойти почитать, что нужно еще такие-то пакеты таких-то версий, а то не взлетит?
Timur
Если роли делаются нормально, то жесткая привязка к версиям не требуется
Timur
Можно брать последнюю актуальную
Timur
Соответственно, при обновлении одной роли, в реки сразу попадает последняя версия, как правило
Timur
И обновлять requirements для всех плейбук не нужно
Timur
inqfen
Ну и плюс, семвер не просто так выдумали, нередкая ситуация когда таки нельзя просто взять и указать послуднюю версию
Timur
Тот, кто использует роли, просто прописывает список нужных зависимостей для всей плейбуки и скачивает все роли нужных версий
Timur
Timur
inqfen
или все-таки стандартный подход это когда зависимости прописаны там, где от них зависят?
inqfen
Зачем?
Я тоже считаю что незачем, и зависимости конкретной роли должны быть у нее прописаны, а не в плейбуке
Timur
George
George
т.е. это не ООП, черт возьми
Timur
George
Timur