Alexander
Я понимаю, что большинство не слышало про DRY, но надеюсь, что всё же есть и те, кто слышали.
Anonymous
на ansiblefest 2019 автор этой "мутной" пачки модулей подпрыгивал от счастья...
Anonymous
"подпрыгивал от счастья". если быть точнее пританцовывал
simplemice.eth
а новое чото было?
Anonymous
а новое чото было?
ну, там про коллекции, про разделение ansible репозитория речь зашла... и типа спокойно, к модулям aws это относиться в последнюю очередь...
simplemice.eth
это понятно, а нового чо завезли то?
Anonymous
ну, коллекции в 2.9
Anonymous
вроде, какое-то подобие есть в 2.8
simplemice.eth
это я в бете игралсо... нового нет...
ясно
Anonymous
"за что купил. за то продал" :)
simplemice.eth
нипродовай больше такое
в убыток работаешь
Anonymous
как бы коллекции появились из проекта mazer (это звоночек!). как бы 2к+ pr все еще имеет место быть. как бы "красная шапка" озвучила, что поддерживать по подписке все это счастье "невероятно дорого". поэтому будет core (движок) + стандартные бандлы. все остальное "запихнем"(мигрируем) в отдельный репозиторий и пусть комьюнити его поддерживает. И да в текущей схеме, для новых котрибьютеров прогнозируемый рассмотр pr получается в районе 3000 дней. в сухом остатке все осталось, как было.
Anonymous
другими словами, когда вам предлагают внести новые модули или изменения в проект ansible, вас просто посылают на три буквы. такая сейчас реальность.
Anonymous
Последнее приложение (sic!)
а кто мешает писать кастомные модули/плагины? т.е. ансибл плох, потому что не надо программировать и все получится? Прошу прощения, но Вы упоролись? Есть декларативный yaml. Если у Вас есть желание напрограммировать, то создайте модуль/плагин. В чем проблемы то? Модно кричать о том, что вот на ansible нельзя что-то там сделать, т.к. это не язык программирования??
Anonymous
я хочу "странное". так напиши модуль/плагин и живи радуйся. это работает в 90% "странного"
Anonymous
все очень печально. конференции, спикеры, которые призывают к странному. "На ansible нельзя программировать". Так напиши модуль/плагин, что Вы мне объясняйте в течении 1-2 часов?
Anonymous
инфраструктура, как код? ок, если это код, то как бы какого хера отношение остается, как поддержке чего-то там инфраструктурного? Вы же признали, что это код, так давайте используем все потерны для разработки? нет? не будем? просто маркетинг?
Sergey
Anonymous
NM
Николай
Что вообще означает выражение "не программируйте на ansible"? Совет не использовать чрезмерно сложные конструкции?
Anonymous
это тема уходит в оффтоп. я и так "получил" сегодня вчера...
Sergey
Николай
это тема уходит в оффтоп. я и так "получил" сегодня вчера...
Почему же. Вполне уместный вопрос) Из всех углов несётся "не программируйте на ansible!", и в этом чате постоянно советуют "не программировать на ansible"... А что это означает -- непонятно. Bashsible? Но это "программированием" трудно назвать; скорее, использованием инструмента не по назначению. Может, речь о неидемпотентности?
Николай
offtop: (На баше вообще мало кто программировать умеет)
NM
Anonymous
Anonymous
писать на ямле "код" плохо. лучше вынеси в модуль и пожелей коллег
Anonymous
как бы с твоим "кодом" еще другим работать...
Николай
Спасибо, про сложную логику понятно.
Anonymous
я рад, что Вы рады )
Anonymous
а кто начинает писать модули обычно отдупляют про идемпотентность...
Anonymous
в хорошем смысле. соображают, что делают
Anonymous
в подавляющем большинстве... ладно, есть исключения...
Anonymous
чего уж там про "святых". программировал на ямле. писал "говномодули". виновен по всем статьям
Aleksandr
я тут на маке недавно питон обновил, и после этого ансибл сломался. если кому поможет, решение нашел тут https://stackoverflow.com/questions/58272830/python-crashing-on-macos-10-15-beta-19a582a-with-usr-lib-libcrypto-dylib
Alex
Умение не программировать на ансибле приходит только с опытом и через время. Уже много раз рефакторил свой код, который писал год назад, когда только начинал работать с ансиблом
Ivan
Ivan
ребят, подскажите пожалуйста что не так
Aleksandr
ansible-inventory -i hosts --list
Aleksandr
откуда бы знать бинарю ансибл-инвентори откуда ты хочешь собрать список хостов?
Ivan
понял спасибо
Aleksandr
тут же в качестве инвентаря можно подсовывать скрипты динамически собирающие инвентарь, например gce.py
Aleksey
Подскажите, пожалуйста, почему значение переменной, определенной в vars второго вызова роли, попадает в первый вызов?
---
- hosts: webservers
roles:
- common
- role: foo_app_instance
vars:
app_port: 5000
- role: foo_app_instance
vars:
dir: '/opt/b'
app_port: 5001
Aleksey
Значение переменной dir, не определенной в первом вызове попадает в него из второго
Aleksandr
а то что роль олинаково называется не может быть?
Aleksey
Ну если бы это были разные роли, то по-любому не попадало бы, но и так по-идее не должно
Timur
Timur
Так и должно быть
Timur
Хотите задать переменную локально для роли - не используйте vars
Aleksey
А вы чего хотите?
хотел чтобы vars были изолированными в каждом вызове - role:
Aleksey
а что использовать?
Timur
Вот так работает?
Aleksey
а что тут изменилось?
Aleksey
Aleksey
Подскажите, пожалуйста, может кто знает, есть похожий на ansible-galaxy утилиту инструмент но для обычных репозиториев, не ansible ролей?
Aleksey
Чтобы можно было в yaml или json описать зависимости и вызовом утилиты их подтянуть. git submodules не предлагать
tutunak
tutunak
Только там не ямл будет
Timur
Aleksey
Aleksey
Когда в плейбуке используется несколько одинаковых ролей подряд, можно ли как-то дополнить лог кастомными сообщениями, я хочу что-то типо:
- name: Role execution 1
role: abc
- name: Role execution 2
role: abc
Было бы хорошо если бы Role execution 1 и Role execution 2 попадали в лог.
Aleksey
Когда возникает ошибка, непонятно где она возникла, в первом или втором вызове
Artem
Aleksey
Artem
Самый прямой вариант: подавай этот параметр внутрь роли, скажем iteration: 1, а во всех вызовах внутри добавь в конце name {{ iteration}}
Aleksey
А если это публичная роль, взятая из galaxy? @dgkmaster
Artem
А если это публичная роль, взятая из galaxy? @dgkmaster
С таким случаем не сталкивался. Чужие роли это всегда боль, в них сложно залезть. По крайней видел такой костыль : после скачивания роли пройтись sed по yml. В принципе обычно name всегда в начале списка. Сделать после скачивания автозамену что то типа s/- name: /- name: {{ iteration }} /g
Сергей
Подскажите, а как использовать {% block name %}{% endblock %} ? В смысле, у меня есть например nginx.conf.j2, но чтобы много в нем не держать или иметь возможность перопределить что-нибудь, я добавил блоки, и хочу в блоки подключать текст из других шаблонов в которых есть {% extends nginx.conf.j2 %} и имеется нужный блок и чтобы в итоге собрался один конфиг на удаленной машине из всех шаблонов. В таске template пачкой скопировать все эти шаблоны в один dest?
Timur
Timur