Pull to refresh

Comments 15

Молекула вполне хороша для юнит-тестинга ролей.
Я даже пробовал TTD с ней. Ну так, нормально получается.
Но как с ней без боли делать интеграционные тесты — тайна великая есть.
Так что похоже придется брать у коллег вариант с vagrant или придумывать свой вариант.
А теперь добавьте к этому то что инфраструктура может быть не только в ansible но и в оркестрации — terraform или ещё чего. И тут вообще лес тёмный.

да все так примерно, кода тебе надо тестировать не отдельную роль, а множество связных ролей/северов/сервисов. В принципе же классическая пирамида тестирования получается.

Поэтому и пишу что кухня «сложная». Щас вектор мысли примерно такой:
1. по максимуму выносить «юнит тестирование», это как раз молекула.
2. на создание виртуалок забить из-за того что долго, делать ревью при мерджах.
3. модули ansible тестировать средствами языка
Странно, как раз молекулой интеграционное тестирование нескольких ролей очень даже неплохо получается, за счет возможности нормально поднять одновременно несколько разных виртуалок, в отличие от test kitchen, которая в автоматическом режиме поднимает виртуалки по одной. Или я чего-то не знаю?

Нескольких ролей на одном хосте — да. А если мне надо тестировать поэйбук который конфигурирует 3 сервера? Как молекула с таким справится?


Имхо никак. Это не ее цель

Похожая проблема.
Я хочу тестировать плейбуки, а это несколько комбинаций хостов ролей и переменных.
И вот как это делать и не сойти с ума, не представляю.
в testkitchen такой подход как раз удобно реализовать, но дружить с ansible не очень удобно

Вот только вроде при запуске kitchen test кухня поднимает и тушит виртуалки по очереди, в отличие от молекулы. Или есть какой то обходной путь помимо руками вызвать kitchen converge && kitchen verify && kitchen destroy?

кухне можно подсунуть свой vagrantfile, в котором несколько виртуалок. строго говоря там же тестируется не роль, а плэйбук. Что вы там напишите это же ваше дело.
Эмм, но в этом же случае имхо теряется половина привлекательности кухни, разве нет?

Не обязательно же весь переписывать. Вагрант хитро инклюдит из множнства мест. Кухня это фрэймворк с кучей ручек ддя настройки. И то что так можно настроить, не означает что так надо.


Может для конкретики обсудим более прикладную задачу?

спасибо, интересная ссылка. на кухне подобное делал подсовывая свой vagrantfile
Небольшой вопрос — а вы не сталкивались с необходмостью перезагружать виртуалки в ролях? Просто в этом случае test kitchen теряет соединение, и говорит что test failed, в отличие от молекулы, которые отрабатывает такие ситуации нормально. Возможно вы как-то смогли это обойти?

Именно в такой формулировке не сталкивался. В packer это решали отдельным шагом. При тестирование своего линукс дистрибутива в эта логика была в обертке на баше которая выжидала поднятие сети по таймауту

Sign up to leave a comment.

Articles