Как стать автором
Обновить

Комментарии 14

Спасибо за статью, Игорь.
Небольшой вопрос: ты написал, что Test-kitchen «является отличной альтернативой Vagrant для запуска инфраструктурного кода», а я думал, что он просто является надстройкой, которая сама использует Vagrant для поднятия виртуалок, генерируя Vagrantfile по шаблону, а не альтернативой. Бывает ли Test-kitchen без Vagrant?
Да, бывает, Test Kitchen использует Vagrant драйвер для локального тестирования, для облачных хостингов у него свои собственные провайдеры.
FYI: для локального тестирования можно выбрать и test-kitceh + Docker github.com/portertech/kitchen-docker, лечге и быстрее, но есть свои баги(
да, или kitchen-lxc, а какие баги в kitchen-docker?
А можно поподробнее написать, так сказать best practice какие именно тесты писать, что проверять?
Подробнее мы рассказываем в отдельном цикле статьей, скоро выйдет вторая часть. Какие именно тесты писать, зависит от вашего кода, примеры можно посмотреть в нашем кукбуке, если вы используете Chef. Если другую систему, то смотрите в репозиториях, как тестируют самые популярные community модули или роли.
НЛО прилетело и опубликовало эту надпись здесь
Привет, да, у нас есть опыт перевода инфраструктурного кода с CentOS на Debian 6, с Debian 6 на 7 и с Ubuntu 12.04 на 14.04, да, даже переход с Chef 11 на Chef 12 приводит к проблемам. Алгоритм, в принципе, везде одинаковый: создаем образ с новой ОС, тестируем его локально с базовой ролью, находим ошибки, исправляем, потом проверяем с ролями сервисов, когда локальное тестирования проходит, переходим к обновлению окружений — preqa/qa/production. Я бы рекомендовал переустанавливать сервер с 0 для обновления ОС, когда у вас инфраструктура в виде кода, ввод нового сервера занимает очень мало времени.
НЛО прилетело и опубликовало эту надпись здесь
Ох, сложную и интересную тему вы подняли, спасибо за статью и за Ansible-lint в частности!
Для своих задач сейчас пишу playbook по настройке однотипных серверов с нуля, начиная с разбиения диска на разделы и заканчивая регулярными обновлениями софта. И пока что самое удобный способ тестирования — локальная виртуалка в Vmware Player.
Пожалуйста, а как вы запускаете Ansible код в Vmware Player, используя Vagrant?
Нет, всё гораздо примитивнее. Задачи по автоматизации создания виртуалок в облаке (или в плеере для тестирования) нет, достаточно только автоконфигурации заранее созданных вручную, поэтому обхожусь без Vagrant'а.
А для запуска Ansible не требуется какого-либо клиента на настраиваемых виртуалках, достаточно только работающего ssh и ключа.
НЛО прилетело и опубликовало эту надпись здесь
Всё верно. С Ansible, в силу его простоты, можно играться очень разнообразно: прогнать playbook на всех серверах из hosts или только на одном, сделать проверку (--check) вместо внесения реальных изменений, запустить только один или несколько сценариев (--tags) вместо всех, начать работу с определённой команды (--start), посмотреть что и как будет изменяться (--diff) или просто добавить подробностей работы по вкусу (-v, -vv, -vvv и т.д.). Ну и, естественно, все эти опции можно комбинировать.
Более того, благодаря идемпотентности операций (и прямых руках писателя сценариев, разумеется) рисков сделать что-то неправильно становится меньше и в некоторых случаях можно обходиться без отдельного тестового сервера или виртуалки.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий