Alex
Там где звёздочка это имя проекта
Sergey
Инвентори в Гите , на каждый проект своя репа.
Вот знаешь, ничуть не жаль. Это странное. И, кстати, я спросил, не что это такое/для чего это, а какая задача этим решается.
Alex
Вот знаешь, ничуть не жаль. Это странное. И, кстати, я спросил, не что это такое/для чего это, а какая задача этим решается.
Сервер для ансибл один, на него из Гита сливаются репы проектов и запускаются плейбуки. В любом случае в топку эти костыли
Vladislav 👻
причем тут инвентори по маске то,?
Vladislav 👻
я понимаю, что один общий энвайрмент для ансибла, ОК, хотите - ваше право, но причем тут инвентори по маске то?
Timur
У людей все время какие-то странные фантазии о том, как что-то запрограммировать на ансибле
Timur
То переменные назначать вручную, проверяя принадлежность к группе, то инвентори по маске из файлов брать, то хосты по паттернам в плейбуке...
Timur
Все пытаются зачем-то использовать ансибл не с той стороны, которой нужно по правилам
Timur
Напомнило опять
Timur
Когда начинаешь изучать ансибл
George
Все пытаются зачем-то использовать ансибл не с той стороны, которой нужно по правилам
О, великий, ну, расскажи - для каких задач нужно использовать ансибль
George
И прибейте этот ответ как припиненное сообщение с дисклеймером, что если делаешь не так, то тебе тут не рады 😂
Anton
Всем привет)) Я все делаю в virtualenv. ansible-container build все билдит и в images докера этот image есть. но когда я делаю ansible-container run. у меня ошибка ERROR: for projectenv_fed_1 Cannot start service fed: OCI runtime create failed: container_linux.go:344: starting container process caused может кто знает, в чем может быть проблема? подскажите, пожалуйста Извините, разобрался))
Anton
не было юзера ансибл в группе докера?
в container.yml в блоке сервис сервис был без command
Max
товарищи по орудию пыток ... как там сейчас дела обстоят с долгими (5-48ч) тасками? нужно еще рожать ежиков с хитрыми трюками прокапывания текста с таргетов, чтобы не съесть всякие ssh таймауты? или есть какие-то новшества?
Max
500 будет нормалек?
Alex
сколько соединений работают стабильно?
Больше 22х не проверял. На 44 нестабильно
Max
понятно, спасибо большое 🙏
Sergey
when: - (hostgroup == "vrt1") or (hostgroup == "vrt2") or (hostgroup == "vrt3") or (hostgroup == "vrt4") or (hostgroup == "vrt5") or (hostgroup == "vrt6") как сократить до одного условия? Может даже массивом
Bsod
попробуй hostgroup in ["vrt1", "vrt2"]
Sergey
Для чего это условие?
аналог if ansible_hostgroup ==
Sergey
я передаю переменную группы - hosts: "{{ hostgroup }}" roles: - process-exporter become: true become_method: sudo gather_facts: False
Timur
Зачем какие-то доп. проверки и условия?
Sergey
потому что раскатка идет не только на эти группы в сиае конкретный джоб будет на конкретную группу
Anonymous
Котаны, в роли надо организовать штуку для разового использования, которая будет выполнять остановку не только себя, как роли, но и вообще, остановку всего деплоя. Но ошибкой это поведение считаться не должно. вариант fail не подойдет, потому что останов будет с ошибкой, вариант meta: end_play не подойдет, потому остановится выполнение только роли, управление передастся плейбуку Есть у кого какие варики как порешать?
Timur
И в варианте для останова - таск с сообщением и все
Anonymous
Инклудать таски по условию
плейбуки менять низзя
Timur
плейбуки менять низзя
А зачем их менять?
Anonymous
А зачем их менять?
ну тогда я тебя не поняла) Смори. у меня есть плейбук, в нем таски, в тасках вызывается роль. В роли в какой-то момент надо организовать остановку всего деплоя(остановку выполнения роли и остановку выполнения дальнейших тасок из плейбука), и остановка должна быть без ошибки. Ну типо это не должно восприниматься ошибочным поведением, должно восприниматься как успешное поведение.
Anonymous
должно быть типо как - fail, ведь фэил делает как раз ту остановку, которая нужна, но не фэил, потому что поведение будет считаться валидным
Anonymous
(вообще, это разовое решение, так что не спрашивай, зачем мне это)
Timur
Если нужно условие остановки - инклудается файл, в котором нет больше тасков
Timur
И роль завершается
Artem
И роль завершается
А если дальше еще таски/инклуды есть?
Timur
Сделать так, чтоб не было
Timur
Ветвление тасков сделать просто
Artem
Сделать так, чтоб не было
Деплой надо посередине остановить, так что дальше они есть
Artem
Если я правильно понял
Timur
Деплой надо посередине остановить, так что дальше они есть
Тогда структура тасков изначально неверно сделана
Timur
Ансибл - не язык программирования
Timur
Он не заточен под произвольную логику запуска тасков
Timur
И он для декларативного подхода, а не для императивного заточен
Artem
Это понятно, но речь сейчас не о том
Anonymous
В роли инклуд тасков по условию
Так а если даже инклудать в роли пустой файл, то потом управление возвращается в плейбук, откуда была запущена роль)
Artem
Первое что придумалось
Artem
А вообще все уже давно придумано, как выяснилось https://docs.ansible.com/ansible/latest/modules/meta_module.html
Artem
end_play
Timur
set_fact и block с условием для дальнейших тасок (которые будут проскипаны)
Это крайне неоптимально. И тяжело поддерживать. Проще реально один раз инклуд нужный сделать
Artem
Инклуд с чем?
Timur
Anonymous
set_fact и block с условием для дальнейших тасок (которые будут проскипаны)
Не прокатит, надо именно останов делать, в твоём случае управление все равно будет у плейбука. Плейбук не поменять.
Artem
Ну так роли-то менять можно, выпилить из роли часть тасков в инклуд, и перед инклудом end_play сделать
Anonymous
end_play
Это не прокатит, в первом сообщении писала, что останов идёт чисто роли м end_play, управление плейбуку отдается после end_play, в общем, я решила, что походу останов с fail единственный варик... Реал других нет
Artem
Да, я прочитал уже
Anonymous
Ну так роли-то менять можно, выпилить из роли часть тасков в инклуд, и перед инклудом end_play сделать
Роли можно, но после роли куда уйдет выполнение? Правильно, в следующую таску плейбука
Anonymous
Кек, спасибо за внимание)))
Artem
Роли можно, но после роли куда уйдет выполнение? Правильно, в следующую таску плейбука
Так я выше написал, родли же можно трогать? Роли, которые нужно скипать, сделать пустыми, и сделать инклуд этих ролей в последней роли, что выполняется после end_task
Artem
Ну так у тебя не останется тасков, чтобы выполнять, они не будут заинклужены
Anonymous
Ну дык говорю, что в плейбуке, куда вернётся управление, ещё многа тасков, и типо их никто не остановит)) ток если зачищать все роли проекта 🙈
Anonymous
Ну так у тебя не останется тасков, чтобы выполнять, они не будут заинклужены
Хм, дошло) рили блок и как другой чел говорил инклюд пустой файл. Блин, так жалко что не предусмотрено стандартное средство для этого...
Timur
Вы пытаетесь организовать типичную императивную логику работы на ансибле
Timur
А ансибл не для этого сделан