Timur
Как самый дубовый способ смасштабировать ансибл на десятки тысяч хостов можно порекомендовать разве что ansible-pull, где выполнение целиком делегируется клиенту. Но там есть свои издержки
Вячеслав
Что значит "обычный"?
это значит обычный инвентори файл в папке ансибла
Timur
В push модели деплоя масштабирование нужно продумывать для таких размеов
Вячеслав
нет конечно
Вячеслав
Давайте абстрагируемся от 30к хостов
Timur
Если абстрагироваться, то проблемы нет вообще
Вячеслав
запуск на 1к, зависание, возможные причины: сеть, корявый хост
Timur
Поскольку она у вас возникает исключительно при попытке запуска на больших наборах таргетов, если я правильно понял
Timur
Можно смотреть опции игнора зафейленных подключений и таймауты
Вячеслав
чем я собственно сейчас и занимаюсь
Вячеслав
еще же что-то может кешироваться? или нет?
Вячеслав
без сбора фактов я имею ввиду
Timur
Сами факты могут отлично кэшироваться
Timur
В том же redis, например
Вячеслав
удалил папку .ansible в хомнике и все заработало
Вячеслав
...
Вячеслав
Еще поставил транспорт парамико и отрубил ControlMaster
Вячеслав
но заработало только после удаления папки
Timur
Парамико - так себе транспорт
Timur
OpenSSH гораздо надежнее по-моему
Вячеслав
Ну все познается в сравнении, если логически подумать ты прав, даже исходя из того что openssh на плюсах писан, а питон не такой быстрый.
Anonymous
OpenSSH гораздо надежнее по-моему
скорее не "по твоему", а по решению проекта ансибл. они отказались от парамико по дефолту
Anonymous
и тому были причины
Вячеслав
Ну с этим можно поэксперементировать, вы мне лучше объясните что могло быть такого в .ansible папке
Вячеслав
Из за чего вставал плейбук
Вячеслав
Там подпапки cp и tmp
Вячеслав
Причем сбор фактов выключен
Anonymous
Слава, "угомонись уже". нет у тебя понимания, как этим "хороводить". Не твое это.
Вячеслав
Ну ок, пойду цветочки выращивать
Anonymous
+
Вячеслав
Раз уж ты сказал
Вячеслав
Тут все такие профи
Вячеслав
С рождения наверное
Гайрат
Ну с этим можно поэксперементировать, вы мне лучше объясните что могло быть такого в .ansible папке
Легко же воспроизвести - создайте директорию и ещё раз прогоните. В плейбуке роли есть?
Anonymous
С рождения наверное
я не могу Вам помочь, я могу посоветовать сменить работу Вам. т.к. Ваши задачи вызываются очень сильный диссонанс с Вашими вопросами
Anonymous
при всем моем уважении
Вячеслав
Моя работа меня устраивает и выполняю я её без нареканий. Эксперементировать мне никто не запрещает.
Anonymous
я не могу Вам помочь при всем желании
Вячеслав
Я понял
Вячеслав
Спасибо
Timur
Ну с этим можно поэксперементировать, вы мне лучше объясните что могло быть такого в .ansible папке
Там хранятся кэши запусков, результаты сбора фактов, врапперы и т.п.
Timur
Что-то на каком-то этапе могло вызывать проблемы. Что именно - сказать затруднительно без результатов дебага
Anonymous
Тим, та забей уже
Anton
удалил папку .ansible в хомнике и все заработало
у меня на ubuntu такое было. ошибку уже не помню. советовали .ansible удалить
Nik
а кто-нибудь пробовал в молекулу? я тут смотрю в доку, в частности в тест на идемпотентность и не могу понять, можно ли покрасить таску какой нибудь аннтотацией, что бы она не влияла на результат теста?
Anonymous
tags
Anonymous
changed_when: False
Anonymous
^^ за такое можно "отхватить"
Anonymous
По чему?
Anonymous
если что-то возвращает разное значение, то лучше через условие
Anonymous
Например, changed_when: - '"ERROR" in result.stderr' - result.rc == 2
Anonymous
По чему?
changed_when: False "искусственно говоришь", что изменений нет. а если изменения есть, а говоришь, что нет... это может ввести в заблуждение... как следствие неприятные кейсы...
Anonymous
а кто-нибудь пробовал в молекулу? я тут смотрю в доку, в частности в тест на идемпотентность и не могу понять, можно ли покрасить таску какой нибудь аннтотацией, что бы она не влияла на результат теста?
наверно стоит изменить таск и т.д. чтобы он был идемпотентен. порой это очень "дорого". поэтому есть changed_when. Цель какая? обмануть молекулу или сделать хорошо?
Anonymous
если цель обмануть молекулу, то как бы не запускай ее с сценарием идемпотентности :)
Anonymous
либо по тегам разруливать, что проверять, что нет
Anonymous
В интерпрайсе идемпотентность «очень дорого» из-за тотального непонимания бизнеса нафига это надо. А если есть понимание, что надо, то тотальное отрицание, что это разработка со всеми вытекающими
Anonymous
аля, какой-то там "оператор вам начинает качать права, как разработчик"
Timur
Но то такое...
Timur
Лучше ничего не скипать и нормальный идемпотентный код делать по моему опыту
Nik
Лучше ничего не скипать и нормальный идемпотентный код делать по моему опыту
я в плейбуке дергаю http эндпоинт. как это сделать идемпотентным ? (ну или мой любимый кейс с распаковками во временные папки)
Timur
Что делает таск?
Nik
Что делает таск?
даёт команду перечитать конфиг напрмер
Timur
даёт команду перечитать конфиг напрмер
Какой модуль вы вызываете? uri?
Nik
Какой модуль вы вызываете? uri?
(вроде да, ща не у компа)
Timur
uri выдаёт результат запроса, который можно обрабатывать и на основе вывода выставлять флаг changed
Timur
По умолчанию, емнип, он вообще changed: false сам выдаёт
Timur
Тут вопрос возник. PostgreSQL кто какой ролью ставить предпочитает?
Anton
Timur
А если стендэлон?
citius
я вот этой ставлю https://github.com/geerlingguy/ansible-role-postgresql
citius
кластер на патрони собираю своей потом.