Comments 15
Молекула вполне хороша для юнит-тестинга ролей.
Я даже пробовал TTD с ней. Ну так, нормально получается.
Но как с ней без боли делать интеграционные тесты — тайна великая есть.
Так что похоже придется брать у коллег вариант с vagrant или придумывать свой вариант.
А теперь добавьте к этому то что инфраструктура может быть не только в ansible но и в оркестрации — terraform или ещё чего. И тут вообще лес тёмный.
Поэтому и пишу что кухня «сложная». Щас вектор мысли примерно такой:
1. по максимуму выносить «юнит тестирование», это как раз молекула.
2. на создание виртуалок забить из-за того что долго, делать ревью при мерджах.
3. модули ansible тестировать средствами языка
Нескольких ролей на одном хосте — да. А если мне надо тестировать поэйбук который конфигурирует 3 сервера? Как молекула с таким справится?
Имхо никак. Это не ее цель
Я хочу тестировать плейбуки, а это несколько комбинаций хостов ролей и переменных.
И вот как это делать и не сойти с ума, не представляю.
Вот только вроде при запуске kitchen test кухня поднимает и тушит виртуалки по очереди, в отличие от молекулы. Или есть какой то обходной путь помимо руками вызвать kitchen converge && kitchen verify && kitchen destroy?
Очень даже справляется. Пример можно посмотреть например тут: https://github.com/ansible/molecule/tree/master/test/scenarios/driver/docker/molecule/multi-node Для AWS или вагранта — аналогичные тесты в соседних директориях
Мечтают ли YML программисты о тестировании ansible?