Configuring Linux
DevOps
IT systems testing
Comments 15
+2

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

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

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

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


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

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

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

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

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


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

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

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

Only those users with full accounts are able to leave comments. , please.