Артём
Ансибл как раз продвигает идею, что не нужно делать того, что хочет ya_1
Не нужно чего, добиваться, чтобы инфраструктура была в требуемом состоянии? Я, может, не так делаю, но уж точно не не то.
George
Действительно это вопрос флоу всего процесса поддержки систем
Sergey
Я согласен, что доступ на прод у разрабов быть не должен
Но я буду честным и дальше - мне за это пришлось платить потрёпанеыми нервами.
George
Потому что для стейтлесс говна - ну, ок, можем взять и перераскатить с нуля.
George
А вот обслуживание серверов с базами и т.п. может превратиться в боль. Их нельзя просто взять и перераскатить
George
Тех под хочет видеть что-то типа рандека с кнопочками. Для более сложных задач зовём админа, который умеет лечить проблему на проде
cent
Агенты поддерживают консистентность. Но вопрос - насколько и какой ценой. И не поломается ли при этом что-то еще
Ну, тогда уже это не поддержка. Консистентность - это CM * (docker * правки ручками) = конфиг Но если ни какой агент сам конфликты не разгребает в diff, то это уже не консистетность по булевой логике
Timur
К конфигурации инфры имеющей мало отношения
Sergey
Не нужно для этого мониторить диффы
Поддерживаю. Запускаешь - и всё. Да, требуется много поработать, чтобы было именно так.
Anatoliy
Приветствую , подскажите по странному , но наверное достаточно простому вопросу. Как заставить ансибл выполнять tasks за одно подключение к серверу ? Сейчас с конфигом https://pastebin.com/Uq0X9Hvz вижу что сначала на все сервера (их там много ) копируется файл, и только после этого перезапускается сервис. В принципе в данном случае это не столь критично , но хочется понять можно ли сделать чтобы сервис рестартился сразу после копирования файла и только потом запускали сл сервер ?
Timur
А что предлагаете ?
Если нужно регулярно чекать и проверять стейт - просто прогоняем ansible-pull с текущей конфигурацией - и все. При изменениях ансибл может слать и алерты через callback
Anatoliy
persistent connection + pipelining?
оно просто будет сохранять подключение же , разве нет ?
cent
Такое себе
Аргумент)
Timur
Такое себе
That's ansible way
cent
оно просто будет сохранять подключение же , разве нет ?
А что конкретно нужно? Что значит "за одно подключение к серверу"?
Sergey
оно просто будет сохранять подключение же , разве нет ?
А ты хочешь, чтобы хосты обрабатывались по одному?
Timur
You can choose anything else you like
Anatoliy
А ты хочешь, чтобы хосты обрабатывались по одному?
чтоб все задачи выполнялись сразу , сейчас вот этот yml отрабатывает так что: файл копируется , и только через несколько минут (серверов много , уже писал) рестартуется сервис.
Anatoliy
а хочется чтоб скопировался файл и сразуже рестартанулся сервис
George
Через handler?
Хендлер же в конце плея отрабатывает ?
Anatoliy
Через handler?
уже и отдельными задачами пробовал и вот так какв примере
Anatoliy
результат одинаковый
cent
а хочется чтоб скопировался файл и сразуже рестартанулся сервис
Следующим таском просто рестратишь и уже следующим ждешь подключения. Но да, хендлеры не заранятся в таком случае. Поэтому нужно проранить хендлеры и только потом ребутать Профит
Sergey
результат одинаковый
Вот там, в правилах, написано, что может люто помочь при вопросах в чат. Логи, пастбин, вот это вот всё.
Timur
Хендлеры перезапускаются после окончания плея
Anatoliy
Вы хотите странного
по моему как раз наоборот , вполне логично выполнить все таски сразу и идти дальше , а не подключаться заново
Timur
а хочется чтоб скопировался файл и сразуже рестартанулся сервис
Что значит "сразу же"? А сейчас что вызывает задержки?
Anatoliy
Хендлеры перезапускаются после окончания плея
двумя отдельными тасками - результат тот же
Anatoliy
Что значит "сразу же"? А сейчас что вызывает задержки?
несколько сотен хостов, и пока на все не скопируется файлик не начинается рестарт
Timur
несколько сотен хостов, и пока на все не скопируется файлик не начинается рестарт
Ну да. Это при параллельном выполнении в стандартном варианте
Anatoliy
Тот же - это какой?
сначала копирыется файл а сервис рестартуется через несколько минут , когда заканчивается копирование на все хосты
Timur
Тогда ансибл ждет выполнения таска на всех хостах
Timur
Хотите, чтоб не ждал?
Anatoliy
Хотите, чтоб не ждал?
угу , чтоб сначала все таски на одном хосте , потом следующий
Timur
А, не
Anatoliy
strategy: free
пробовал , увы тот же результат
Timur
Если хосты по очереди нужно, то stratefy: linear
Anatoliy
Если хосты по очереди нужно, то stratefy: linear
так оно же по умолчанию вроде
Anatoliy
А разве инклуды не отдельно обрабатываются? include_tasks
у меня без. инклюдов , или я не так понял ?
cent
у меня без. инклюдов , или я не так понял ?
Наверное) Лучше на пасту выкинуть, чтобы было понятно
cent
было же выше , https://pastebin.com/Uq0X9Hvz
Сорян, не увидел. Попробуй в include_tasks оберни. Может прокатит. Можно и block попробовать
Timur
Тогда следующий таск на каждом хосте запускается сразу по завершении предыдущего
Timur
Но если handler, то будет ждать всего плея, да
Timur
Так что убираем хендлер и ставим strategy: free
Timur
Должно помочь
Anatoliy
угу , сейчас попробую free и без хендлера
Anatoliy
Должно помочь
https://pastebin.com/zQgZHqA3 Вот с таким конфигом разница между датой создания файла и рестартом сервиса ~3 минуты . т.е. явно работает не так как мы считаем
George
у меня вопрос
George
зачем там вообще хендлер? если сделать двумя тасками (я ведь правильно выражаюсь?) в первой зарегистрировать изменение файла, то оно сразу выполнится?
Anatoliy
или как-то иначе ?
George
т.е. та же фигня? сначала файл на всех хосты, потом рестартуем?
Anatoliy
угу , 3 минуты разница
Timur
Может, просто файл долго копируется?
Anatoliy
У вас там канал нормальный вообще?
там файлик на 849 байт , канал - гиг , rtt 19мс
Timur
там файлик на 849 байт , канал - гиг , rtt 19мс
На подключение ssh много тратится?
Anatoliy
Может, просто файл долго копируется?
я четко вижу что файл уже давно скопировался а сервис еще не рестартовал
Anatoliy
На подключение ssh много тратится?
времени ? нетконечно, если вы про то что 3 минуты разница - так это просто , там несколько сотен серверов :)
Timur
А, ну, тогда проблема исключительно в масштабировании
Timur
Контроллер не тянет, видимо