Назад | Перейти на главную страницу

Лучшая практика для тестирования рецептов от шеф-повара?

Моя команда создала большое количество кулинарных книг для шеф-поваров. Мне было интересно, какие методы и фреймворки мне следует изучить, чтобы мы могли начать создавать тесты, чтобы убедиться, что наши узлы настроены правильно?

Вы можете (также) изучить Бродяга для этого.
А видео показывает, как использовать комбинацию поваренных книг 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 и т. Д.

Он также имеет плагины, позволяющие запускать один из многих инструментов тестирования инфраструктуры, которые существуют сегодня:

  • serverpec - самая популярная среда тестирования.
  • сплетничать - YAML, простой, автономный двоичный, чрезвычайно быстрый.
  • inspec - думайте об этом как об улучшении serverpec (написано ребятами-поварами).
  • testinfra - фреймворк для тестирования серверов на Python.

Есть несколько вариантов.

Opscode входит в план развития Chef "no-op" поддержка, которая поможет с тестированием. Мы делаем спорить это «безоперационное» не обязательно делает то, что вы хотите, но понимает желание этой функции.

По моему опыту, единственный способ добиться этого - создать промежуточную среду и тщательно продуманные методы разработки. Имитировать фактическую работу, которую предстоит выполнить, невероятно беспорядочно и хрупко, а наборы тестов CI, запускаемые при фиксации или отправке, являются много усилий на написание и поддержку (хотя Chef, вероятно, намного лучше в этом, чем Puppet, что является моим основным опытом), и на запуск уходит невероятное количество времени.

РЕДАКТИРОВАТЬ

Сразу после того, как я написал это, я внезапно понял, что может быть способ провести достаточно эффективное «модульное» тестирование рецептов Chef / Puppet с объединенной файловой системой и значительным количеством шаблонов. Однако я не могу найти ничего, что уже было сделано в этой области. Возможно, я только что нашел себе проект.