Андрей
Если список групп на вход дам, хосты перемещаются?
Андрей
Нельзя, нужно за один вызов...
Андрей
В hosts: включить цикл по нижним группам?
Aleksey
сделай последовательные просто вызовы для разных подгрупп
Aleksey
hosts: sub_group1 roles: serial: 50% hosts: sub_group2 roles: serial: 50%
Андрей
Вызов идёт скриптом. Разделить его га два не могу. Передаётся переменная в hosts: {{ hosts_group | default... }}
Андрей
Можно править , но обратную совместимость никто не отменял.
Андрей
Либо внедрить loop какой-то
Dmitriy
Всем доброго дня, есть тестовая конструкция (https://pastebin.com/AifDWX73) собственно для передачи версии работает, а как теперь запускать разные роли(или таски) согласно введенного ? Что то вроде if java_ver=java 1.6 x32 then run java632task.
Egor
ребят, кто подскажет в наркомании? результатом shell комманды является json, как-то можно внутри ансибла сделать register уже конкретного элемента в качестве переменной, а не всего массива
Egor
т.е. дальше то я могу сделать конструкцию типа var.content|from_json)['keys']['publicKey']
Egor
но хотелось ты это применить сразу к аутпуту. чтоб результат пабликкея сразу лежал в в перменной
Egor
или лучше отдельную таску сделать, которая будет разбирать результат?
Egor
а стоп, я же могу результатом сделать set_fact и дальше с ним работать уже
Egor
вопрос снят :-)
Вадим
🦆
Anonymous
https://docs.ansible.com/ansible/latest/user_guide/playbooks_conditionals.html?highlight=condition
Dmitriy
спасибо, попробую...
Dmitriy
истина где то рядом....что есть https://pastebin.com/CCiwvzf9, но уверен что я не так сравниваю, предположительно разные типы переменных....
Dmitriy
дружно идем голосовать за дрйгие номера :)
Alex
$ host izzi.ua Host izzi.ua not found: 3(NXDOMAIN)
Alex
а в чем хумор
Alex
прощай алина-бот
Denis 災 nobody
упс )
CHIP
Dan
Ща всех в бан уйдут же
Denis 災 nobody
миссклик
Denis 災 nobody
мда, хороший миссклик вышел. У телеги нет undo?
Egor
есть у ансибла хук/таск, который позволит подождать, пока сервис полностью запустится, или лучше мониторить логи, пока в них промт приветственный от сервиса не появится??
Damir
Смотря какой сервис, для monit я писал на питоне отдельный модуль
Egor
да вот вопрос задал, и сам понял, что он нифига не так прост
Egor
и задумался
Egor
:-)
Egor
что считать "запуском"
George
поверЬ, не ты один теряешься
Dmitriy
просто некоторые службы после запуска и статуса started все еще в процессе запуска, соответственно цепляться за статус службы будет неверно :)
Egor
я в курсе, именно по этому и задумался
Denis 災 nobody
мы добавляли в сервис ожидание запуска
Denis 災 nobody
именно дёргая апи, пока оно не ответит что сервис запустился
Dmitriy
я в курсе, именно по этому и задумался
ну, например, можно парсить лог и ждать строчки started или что там....но чего то это на костыль смахивает
Egor
сижу читаю про метод wait_for
Damir
Но я все же за самописный модуль для этого сервиса
Egor
не вариант по куче причин, одна из которых - лень а основная - это богомерзкая ява
Egor
ну и наиболее правильным будет метод "послучаться в апи сервиса, в метод статус"
Egor
тогда эта хрень гарантированно жива
Egor
ща пойду спрошу у тех, кто мониторит сервис, куда они стучатся
Alex
а что за сервис?
checkdiff
Коллеги, не один раз видел вариант работы с различными переменными через hostvars[hostname].host_variable. Однако в этом случае всегда возвращается тип переменной - строка, а иногда нужен оригинальный тип, например, целое число. Обходится это путем выставления jinja2_native=true, но в этом случае все ранее написанные выражения на jinja могут потерять свои значение, например issue с словарями https://github.com/ansible/ansible/issues/46169 Кто использует метод hostvars[hostname].host_variable как решаете такого рода проблему?
Timur
wait_for на хост с портом в ожидании доступности
checkdiff
Alex
wait_for на хост с портом в ожидании доступности
доступность порта != готовность сервиса
Timur
доступность порта != готовность сервиса
Тогда стучаться через uri на конкретный url с ожиданием нужного ответа в цикле через retry
checkdiff
А подробнее?
кажется я возможно нашел проблему в кастомном filter_plugin'e, сейчас проверю и отпишусь.
Egor
wait_for на хост с портом в ожидании доступности
наличие порта тоже не показатель, оно порт может поднять но до конца весь стейт не проинициализировать
Timur
наличие порта тоже не показатель, оно порт может поднять но до конца весь стейт не проинициализировать
Тогда стучаться через uri на конкретный url с ожиданием нужного ответа в цикле через retry
Egor
угу, ищу в апи health check
Egor
да, но если порт закрыть, то и дальнейший разговор бессмысленен
ну типа мне не каскад првоерок нужен, а гарантированность состояния
Egor
это - немного разные вещи
George
примерно
Egor
мне тупо нельзя дальше делать процедуры, пока оно не в норм состоянии
George
но ты можешь договориться, что определенная проверка дает гарантию, что все ок
Timur
uri + retry и until
George
но не факт, что если она не зафейлилась, то все плохо
Damir
Если сервис кастомный, добавте его в monit и мониторте как хотите потом
George
тут как с разрабами сервиса договоришься
Timur
Мой вариант чем-то не устраивает?
Egor
мне не надо "договариваться" - мне надо факт, что оно живо, чтобы потом мне не бегать, а в каком месте у меня выкладка площадки зафейлилась :-)
Egor
его и реализую
Egor
вопросы были у другого человека по другому вопросу
Egor
:-)
Timur
👍