Timur
И почему "сервера встают несколько раз в итоговом плее"?
Aleksandr
чтобы виртуалки создать
Aleksandr
чтобы обновить шаблоны для виртуалок
Timur
чтобы виртуалки создать
А можно узнать, как полная задача звучит, в таком случае? А то опять очередная XY problem.
Aleksandr
у меня нет проблемы в самой задаче. все таски написаны и работают. проблема появляется когда начинается конкуренция за ресурсы, т.к. идет паралельная попытка исполнения на одном и том же хосте
404
встречал ли кто-нибудь поддержку android в качестве целевого хоста ansible? не на большой комп сходить и запустить на нем adb, а именно сразу пойти на android? задача видится после factory reset восстановить рабочее окружение для сотрудника в определенном порядке при этом, например, прежде чем установить второе приложение, нужно сначала запустить первое, чтобы оно свои данные создало или после установки (перед первым запуском) подложить ему данные в каталог data, а если не устанавливали - то не подкладывать, а то все попортим ну и соответственно, если пользователь что-то случайно удалил - вернуть взад одним запуском плейбука поиск только запуск adb что-то выдает, но такое можно и на баше навертеть
404
кмк на круг дешевле будет поднять ssh на целевом мобильнике, нежели экранировать adb shell а вот с питоном там напряг, ssh-то и тот не настоящий
George
кмк на круг дешевле будет поднять ssh на целевом мобильнике, нежели экранировать adb shell а вот с питоном там напряг, ssh-то и тот не настоящий
Про готовое я не слышал, но если есть хоть какой-то ssh, можно начать (установку питона) с помощью модуля raw.
404
очень хочется не начать пилить свой велосипед, да еще и в такой шаткой области, если кто-то уже это делал опрашиваю чятик, мало ли плохо гуглил
Denis
Ребят, кто-то использует для тестирования ansible ролей через молекулу goss?
Denis
Зачем goss, если есть ansible?
Ну инфраструтктурные тесты и все такое
Denis
Testinfra
У меня сегодня с Testinfra проблемы возникли
Denis
Причем тестил потом в ручную без молекулы.
Denis
У меня проблема что сервисный порт висит на определенном интерфейсе и когда указываешь host.socket("tcp://3000") то testinfra фейлится
Denis
В доке написано что модуль socket использует netstan утилиту, но в современных дистрах ее нет. После дебага я увидел что он использует socket stat (ss).
Denis
Так ты можешь адрес указать
Проблема в том что адрес динамический постоянно
Denis
Всем привет! Подскажите пожалуйста, можно ли в testinfra передать переменные из ansible? Например: def test_socket(host): s = host.socket("tcp://{{ hostvars[inventory_hostname]['ansible_' + network_interface].ipv4.address }}:3000") assert s.is_listening
Denis
Вот я спрашивал выше
Denis
В goss написал тесты и все ок работает
Denis
В goss написал тесты и все ок работает
Но там проблема оказалась
Denis
https://github.com/ansible-community/molecule-goss/issues/8
Denis
Уже откатывал версию молекулы, но все равно ловлю этот фейл
Denis
Timur
Ну инфраструтктурные тесты и все такое
Ансиблом тоже это можно делать же.
Aleksey
Зачем goss, если есть ansible?
потому что goss решает больше задач чем ансибл и тестинфра
Aleksey
некоторые вещи тоже можно делать ансиблом но госом удобнее.
Aleksey
я например начал для виртуалок укладывать файл спецификации госа, как онлайн верификатор хоста. этакий контракт того что должна делать виртуалка а что нет.
Aleksey
как только гос научится отдавать метрики это будет еще и часть стека для поверхностного мониторинга. сейчас приходится оборачивать гос через консуловский хелсчек
Aleksey
ну и цена создания тестов в госе существено ниже. намного проще и быстрее написать goss aa nginx и он сделает 8 тестов, на юзера, на пакет, на порты, на сервис чем делать тоже самое через тестинфру или ансибл
Aleksey
да. но можно лучше.
Dmitry
да. но можно лучше.
Можно написать свой фреймворк для тестирования
Aleksey
пожалуйста нет
Aleksey
(чортов яндекс)
Aleksey
главное не опенсорсите
UglyKoyote
вопрос.. ансибл же на хост ходит, а госс?
Aleksey
Dmitry
(чортов яндекс)
На самом деле, если ты посмотришь на свои тесткейсы - там не так много будет, наверняка
UglyKoyote
ну то бишь надо ставить и прочее. ясно. я думал мне показалось. спасибо
Aleksey
ну то бишь надо ставить и прочее. ясно. я думал мне показалось. спасибо
да надо сделать роль на 5 тасок которая будет его тащить с гитхаба
UglyKoyote
не не, я к другому веду
UglyKoyote
вот есть у нас запущенный хост с сервисами и прочим. ансибл пришел проверил ушел, ничего не ставя. а госс - надо притащить, поставить, запустить..
Aleksey
На самом деле, если ты посмотришь на свои тесткейсы - там не так много будет, наверняка
там очень не много. порядка 70 тестов на виртуалку. только проверка базовых вещей. файлы лежат, вывод команд ожидаемый, урлы возвращают 200ки
UglyKoyote
и при наличии сесурности - это ещё и согласовать надо ведь будет?
UglyKoyote
я натыкался местами что сесурити ансиблу то мешают, всякими центрифаями
Dmitry
Проверить лежит ли файлик, апнут сервис, отдается 200
Aleksey
вот есть у нас запущенный хост с сервисами и прочим. ансибл пришел проверил ушел, ничего не ставя. а госс - надо притащить, поставить, запустить..
это разные задачи. частенько надо предоставить хелсчек машины. типа можно ли на нее трафик пускать. типично для этого надо выдымывать какой то сервис. и там может быть много логики. гос это делат проще
UglyKoyote
это очень напоминает, прости господи, шефовский тест инфры..
UglyKoyote
я бы предпочел ансибл, но меня вынуждают с руби страдать
Aleksey
ансибл может менять состояние хоста, а тут чисто тест.
UglyKoyote
я не говорю что фу фу.. я просто понять разницу хотел, и ответы показали эту разницу
Aleksey
ну и при рефакторах очень помогает ага да. ну это свойство тестов в целом
Игорь
А можно как то по созданию каталогов за счёт фильтра убрать такую вещь как {'url':' version} а оставить только каталоги которые идут дальше а то он создаёт это потом нормально или как в фильтр добавить что бы удалял что то такое а то я не представляю как можно
Игорь
А то у меня получаются каталоги так {'url':u' потом то что входит в поиск vars version и потом уже то что нужно
Игорь
Я предполагаю что в path нужно добавить фильтр и в loop из всего что думаю это Default
Vladislav 👻
это разные задачи. частенько надо предоставить хелсчек машины. типа можно ли на нее трафик пускать. типично для этого надо выдымывать какой то сервис. и там может быть много логики. гос это делат проще
А помимо сетевой доступности есть еще какие-то примеры, почему можно/нельзя пускать трафик? Просто сетевую доступность я чекаю через network-access-exporter, который через ansible катается и промом мониторится. А что еще можно такого сделать?
Aleksey
А помимо сетевой доступности есть еще какие-то примеры, почему можно/нельзя пускать трафик? Просто сетевую доступность я чекаю через network-access-exporter, который через ansible катается и промом мониторится. А что еще можно такого сделать?
еще можно сломать всяческие права на хосте, иметь зависимые сервисы в дауне, упавшие ssh-и, кончившеся место, непримонтироввашиеся файловые системы или перемонтированные в ro
Vladislav 👻
Так ансибл и мониторинг это исключают...
Aleksey
конечно исключают (нет)
Aleksey
к тому же мониторинг скажет у тя хост валяется. иди на балансер и выключай трафик. и ты пойдешь.
Vladislav 👻
Я что-то все равно не пойму, как госс поможет?
Vladislav 👻
Какой-то практический пример хотя бы
Aleksey
у госа есть /heath endpoint
Aleksey
по запросу к нему гос прогонит все тесты и вернет 200 если успех.
Vladislav 👻
Надо потыкать 🤔
Aleksey
там тыкать после скачивания бинаря секунд 30. потом 10 минут в доку и поехали
Vladislav 👻
Я просто пока не понимаю, для чего и как это использовать, если есть ansible
Aleksey
ты ансибл рефакторишь ?