Pavel
тут сначала надо понимать в чем задача...
Dima
пока я увидел потребность разделять per-user. а проблема сходу не видна.
Pavel
у нас, например, валут нужен для того чтобы хранить ключи-сертификаты в свн (понятно, что в открытом виде - это дичь)
Pavel
так вот те, кто занимается деплоем имеют ключи для ваулта и без проблем имеют доступ к "секуре данным"
Pavel
реально фируются только те данные, которые "приватные"
Dima
ну можно при этом и в CI заряжать перешифрованный файл с переменными, поменял переменные - прошел скриптом перешифровал - передал CI свой (собственный, отдельный для неё) vault pass.
Dima
и вполне можно проверять на дубли этот файл, простейшим плейбуком перед запуском. если инженеры не хотят между собой общаться и договариваться об именах переменных.
Dima
но всё это кривые решения по большому счету и страшные костыли. проблем нет когда файл с сенситив датой один, пароль vault знают все кто работает с этим репозиторием. если прям нужно разделять разрабочтиков - можно разделить их по репозиториям, пароль на один репозиторий ansible останется один, всё тупо и просто.
Dima
короче, упрощайте (с)
Pavel
короче, упрощайте (с)
вот из детства, почитайте... http://www.lib.ru/RUFANT/ROSOHWATSKIJ/nadezhnost.txt_with-big-pictures.html
Pavel
как-то запало.... в "технике молодежи" вроде было
Pavel
не знаю помнит ли кто еще такой журнал....
Pavel
@lastsky ни в коем случае, не с подъебом, просто во всем нужна мера сам не сторонник слишком сложных выебосов....
Dima
не, я ничего нового не сказал вообще
Pavel
Dima
попробовал ANSIBLE_USE_PERSISTENT_CONNECTIONS=True, среднее время выполнения 15-минутного плейбука осталось таким же. а кто-нибудь получил ощутимый результат?
Pavel
почитай про ssh pipelining
Dima
ага, спасибо. у меня он включен по дефолту везде. [ssh_connection] ssh_args = -o StrictHostKeyChecking=no pipelining = True
hackru
ну так у тебя время тратится видать не на хендшейк ssh-ный, а на последовательное(синхнронное) выполнение ролей
hackru
пока все хосты в группе таск не выполнят, ансибл дальше не бежит
Dima
да, таски синхронно на всех серверах выполняются.
Dima
в общем-то я и так рефакторю, уменьшая количество тасков, ролей, группируя через with_items, операции копирования / темплейтинга в одну задачу (однако иногда требуется всё таки не перемешивать вообще всё)
Aleksey
для серверов не работает вроде как
Dima
ага, спасибо, понятно теперь
Dima
и дока нужная сразу отгуглилась
Dima
Aleksey
я тоже надеялся на ускорение
Aleksey
увы
Aleksey
ускорение конечно произошло. но пока я не замерял... :)
hackru
а что мешает пуллить, а не пушить?
Aleksey
пулл это про солт и паппет
hackru
а что мешает тебе запустить ансибл локально на каждой тачке?
hackru
через pdsh какой-нибудь
Dima
интересная мысль, надо обдумать. однако для этого придётся много переписать :)
Womchik
fact_caching_timeout - кто в какой ставит?
hackru
в целом ты можешь вызывать ансиблом удаленный ансибл
hackru
Dima
да я чот весь день сегодня гоняю простой плейбук, и устал ждать по 15 минут. не знаю, salt чтоли попробовать ещё раз поплеваться.
hackru
может тебе обмазаться тегами и гонять только то что изменилось по тегам?
matt
а как асинхронное выполнение включить?
Dima
hackru
ну вот если ты поменял что-то оттеганное, гоняй только теги которые изменил
Dima
я просто хотел меньше контролировать мозгом что там делается, запустил плейбук, он всё что идемпотентно не поменял.
Max
реальность против....
hackru
а как асинхронное выполнение включить?
псевдокод: for element in inventory do ansible --limit=element & done
hackru
Dima
был инцидент, я обычно и гонял с тегами как всегда, и с лимитами по серверам. внезапно... выяснилось что на части серверов конфиги несвежие.
Dima
как и когда это произошло - не разобрать. ну, точнее, разобрать конечно, но цель не оправдывает средства.
hackru
но если принять во внимание твою попоболь выше, то наверное стоит всё же синхронно гонять, лол
hackru
чтобы хендлеры синхронно срабатывали
Dima
а как асинхронное выполнение включить?
http://docs.ansible.com/ansible/playbooks_async.html тута примеры
matt
спасибули
Aleksey
плейбук закрытый ?
Aleksey
дай почитать :)
Dima
угу, NDA.
Aleksey
эх
Aleksey
ну ладна
Dima
там по сути ставятся пакеты, деплоятся конфиги, правятся хосты, катится всякий стафф. стандартные модули, всё из stable.
Aleksey
по сути это 99% плейбуков такие
Dima
вот да. и в общем-то я там уже оптимизировал такие штуки как copy + template, можно template'ом копировать с тем же успехом и в with_items поместить списки. это всё ускоряет, но не особо. основное время уходит на копирование файла. ну и forks у меня заведомо больше чем серверов.
Max
Идите в канал, и, не джойнясь, репортите на спам
господа такой момент. есть строчка - debug: msg="{{ hostvars[groups [ ('hostgroupname') ][0]] }}"
только при ране в одной роли выдается куцый жсон
в ране другой - гигантский жсон с кучей инфы
в хостс в [hostgroupname] лежит 1 айпишник
подскажите, почему так?
+ момент: буквально поменял одну хостгруппу на другую в этой строчке, как поведение изменилось. полный WTF
O
очевидно у тебя в этой группе есть group_vars файл и там больше переменных
групварс нет точно нигде
разница между жсонами колоссальная
O
а ну еще может быть что ты много set_facts юзаешь, которые выкинутся тебе в твоей строке - кстати.
O
ну это должно быть неприлично много
сет фактс не юзаю
буквально вынес эту строку первой таской в ролях
O
че за дичь тогда ? так не бывает... разный набор переменных может быть только тогда когда реально задаются групварс