Kirill
Ну просто компоненты-то разные? :)
Anton
Ну просто компоненты-то разные? :)
да разные, но деплояться они одинаково
Anton
беру бинарник, кладу в папку на хосте, регистрирую демон, все.
Anton
(это условно)
Anton
через эти таски мне надо пропустить все компоненты. смысл писать для каждого свои таски?
Kirill
А в CI баш?
Anton
все что пожелаешь
Kirill
Я бы наверное распараллелил в CI эти задачи в таком случае
Anton
Я бы наверное распараллелил в CI эти задачи в таком случае
ну вот я к такому же выводу и пришел. хотелось ансиблом. но может потому и не вышло, что не надо желать странного :)
Kirill
ну вот я к такому же выводу и пришел. хотелось ансиблом. но может потому и не вышло, что не надо желать странного :)
Причём скорее не параллельно в фоне, а по разным параллельным джобам в пайплайне.
Kirill
именно так, на разных раннерах
Почему по параллельным джобам. Чтобы в пайплайне можно было лог внятно посмотреть. А если в цикле в баше с выполнением в фоне, то фиг знает как выхлоп ансибла выплёвывать. Если можно выплюнуть сразу весь по выполнению всех плейбуков, то можно и так.
Sergey
да не, я согласен, так корректнее, и мало ли, где то, что-то упадет по дороге.
Итак. Если у тебя несколько абсолютно одинаковых (кроме назвний, номеров портов и т.д.) сервисов, то пишется одна-единственная роль, но её вызовы прекрасно параметризуются списком. А содержимое списка вешаешь на group_vars/host_vars.
Sergey
Всё. Ещё бывает полезно держать разные шаблоны конфигов для каждого такого приложения - чем они отличаются друг от друга.
Anton
допустим, как запарлелить?
Sergey
Никак.
Sergey
ПОтому что не надо.
Anton
задача была в этом :)
Sergey
400 Bad request
Anton
но мы тут пришли к выводу что паралелить надо CI-ем
Sergey
но мы тут пришли к выводу что паралелить надо CI-ем
А логи этой банки с червями чем читать?
Anton
А логи этой банки с червями чем читать?
да это правильный аргумент в пользу не паралелить
Kirill
А логи этой банки с червями чем читать?
Дык в CI логи прекрасно выводятся.
Sergey
Дык в CI логи прекрасно выводятся.
Угу. Параллельные. Читать как?
Kirill
Угу. Параллельные. Читать как?
Возможно я чего-то путаю. В gitlab-ci для параллельных джобов отдельные "экраны". На каждом будет результат выполнения плэйбука. Предполагаю, что в битбакете так же.
Anton
Возможно я чего-то путаю. В gitlab-ci для параллельных джобов отдельные "экраны". На каждом будет результат выполнения плэйбука. Предполагаю, что в битбакете так же.
все верно, @tnt4brain при паралеливании сущностями CI все ок, в каждой джобе будет свой ансибл со своим логом полноценным.
Sergey
все верно, @tnt4brain при паралеливании сущностями CI все ок, в каждой джобе будет свой ансибл со своим логом полноценным.
Чот фигня какая-то. В качестве примера: больше одного пакета ОС ставить нельзя ввиду того, что штатные пакетные менеджеры используют блокировки БД.
Alex
Асинхроночка и until + паралеллелочка в CIчике - коктейль готов)
Alex
Спасибо
Max
Спасибо
я плакяль: асинхроночка, с антилкой в сиайчике.
Max
доброе утречко :-)
Max
полакал со с меха.
Timur
допустим, как запарлелить?
Что именно? Установку ролей на разные хосты? Это из коробки параллельно делается
Александр
но мы тут пришли к выводу что паралелить надо CI-ем
ребята, не стоит вскрывать эту тему...
George
ох
George
лучше расскажите почему не стоит программировать на ансибл
George
вот тот же редхат очень активно подталкивает, что все рутинные задачи были на ансибле и контролировались с одного места (AWX?)
George
в мою бытность мы автоматизацию тупо делали на python. Где нужно - модулями, где не получалось - os.system subprocess.check_call
George
вот. Предлагаю обсудить
Vlad
Делайте и сейчас на python, модулями в ansible. Обычно когда делают сами то забывают про идемпотентность.
nett00n
лучше расскажите почему не стоит программировать на ансибл
Во-первых, на ансибле не программируют, ансибл - не яп. Во-вторых, использовать ансибл хорошо тем, что это общеизвестное решение, а не кастомный накостылинг, с которым новым сотрудникам придется знакомиться с нуля.
George
во-вторых, любая автоматизация - это программирование
Sergey
во-вторых, любая автоматизация - это программирование
Да. Но ты сам видишь, ЧТО делают из Ansible. То systemd, то git, то rsync на стероидах.
nett00n
В общем, имхо, использование ансибла (чеф, солт, паппет, етц) - это хорошо лучше своего собственного решения именно из-за того, что новый сотрудник, имеющий опыт в таком оркестраторе сможет быстро влиться в работу, в сравнении с любым, самым замечательным накостылигюнгом, написанном внутри.
Timur
во-вторых, любая автоматизация - это программирование
Ансибл сделан для декларативного подхода. Классическое императивное программирование с этим плохо стыкуется
George
это процедурный подход
George
а потом получилось, что и инкапсуляция и наследование пошло
George
так что ООП прямо
Sergey
Ансибл читать проще :)
Хорошо написанный ансибл, считаю важным заметить.
George
Декларативный
не декларативный
George
это такой же декларативный подход, как писать bash в YAML
Alexander
У меня есть таск с with_items:. Хочу убрать все items, но таск убирать не хочу. Как сделать?
Alexander
Это отдельно нужно ещё list делать?
Mihail
Это отдельно нужно ещё list делать?
а что ты в with_items передаешь? если переменную list - то ее и можно проверять это лучше чем хардкодить список
Alexander
Нет там переменной
Sergey
Подскажите плиз Не могу найти в доке ансибла yum disable repo Оно вообще работает?
Timur
Что значит - убрать все items?
Timur
Подскажите плиз Не могу найти в доке ансибла yum disable repo Оно вообще работает?
Вот этот модуль: https://docs.ansible.com/ansible/2.5/modules/yum_repository_module.html#yum-repository-module
Alexander
Не понял, что вы хотите, если честно
Есть with_items: - item1 - item2 Мне теперь не нужно по ним проходить, но если просто их убрать, элементов не останется, ansible не съест.
Timur
Что значит - не нужно проходить?
Alexander
With_items: []
Это прекрасно! То, что нужно, спасибо