Моя команда создала большое количество кулинарных книг для шеф-поваров. Мне было интересно, какие методы и фреймворки мне следует изучить, чтобы мы могли начать создавать тесты, чтобы убедиться, что наши узлы настроены правильно?
Вы можете (также) изучить Бродяга для этого.
А видео показывает, как использовать комбинацию поваренных книг Vagrant и Chef. А на сайте Vagrant and Chef есть отдельная страница. Opscode сайт (обновление 2015-01-23: страница исчезла ...).
Есть cucumber-chef
рубиновый драгоценный камень и недавно выпущенная книга Нельсона-Смита и др. «Инфраструктура на основе тестирования с Chef», в которой этот драгоценный камень используется - http://www.cucumber-chef.org/
Только что вспомнил это из моего списка наблюдения на github: https://github.com/gregretkowski/vmth/
VMTH (Virtual Machine Test Harness) предоставляет механизм для модульного тестирования автоматизации вашей инфраструктуры - марионеточные политики, рецепты шеф-повара, сценарии развертывания релизов и т. Д. Он использует функции современных мониторов виртуальных машин (например, qemu) для создания моментального снимка состояния системы, а затем сброса это состояние после каждого теста, чтобы можно было быстро выполнить серию тестов на экземпляре виртуальной машины
Некоторые ответы здесь кажутся немного устаревшими. Для CI и локального тестирования я бы рассмотрел возможность использования инструмента тестирования, например Тестовая Кухня который также поддерживает Vagrant, если вы его уже использовали.
Это позволит вам запускать ваши куки против многих облачных решений и решений виртуализации, существующих сегодня: EC2, Digital Ocean, Vagrant, Docker и т. Д.
Он также имеет плагины, позволяющие запускать один из многих инструментов тестирования инфраструктуры, которые существуют сегодня:
Есть несколько вариантов.
Opscode входит в план развития Chef "no-op" поддержка, которая поможет с тестированием. Мы делаем спорить это «безоперационное» не обязательно делает то, что вы хотите, но понимает желание этой функции.
По моему опыту, единственный способ добиться этого - создать промежуточную среду и тщательно продуманные методы разработки. Имитировать фактическую работу, которую предстоит выполнить, невероятно беспорядочно и хрупко, а наборы тестов CI, запускаемые при фиксации или отправке, являются много усилий на написание и поддержку (хотя Chef, вероятно, намного лучше в этом, чем Puppet, что является моим основным опытом), и на запуск уходит невероятное количество времени.
РЕДАКТИРОВАТЬ
Сразу после того, как я написал это, я внезапно понял, что может быть способ провести достаточно эффективное «модульное» тестирование рецептов Chef / Puppet с объединенной файловой системой и значительным количеством шаблонов. Однако я не могу найти ничего, что уже было сделано в этой области. Возможно, я только что нашел себе проект.