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

18

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

linusthe3rd
источник
Похоже, что это относится к cooking.se;)
Марк Хендерсон
На мгновение я подумал, что вы говорите о шеф-поваре: en.wikipedia.org/wiki/Chef_%28programming_language%29
Янне Пиккарайнен,

Ответы:

7

Вы можете (также) заглянуть в Vagrant для этого. Видео показывает , как использовать комбо Vagrant и шеф поваренных книг. И на сайте Opscode есть специальная страница для Vagrant и Chef (обновление 2015-01-23: страница исчезла ...).

Henk
источник
3

Существует cucumber-chefрубиновый камень и недавно вышедшая книга Нельсона-Смита и др. - «Управляемая тестами инфраструктура с шеф-поваром», в которой используется этот камень - http://www.cucumber-chef.org/

Просто вспомнил об этом из моего списка наблюдения на github: https://github.com/gregretkowski/vmth/

VMTH (Virtual Machine Test Harness) предоставляет механизм для модульного тестирования автоматизации вашей инфраструктуры - политик марионеток, рецептов шеф-поваров, выпуска сценариев развертывания и т. Д. Он использует функции современных мониторов виртуальных машин (например, qemu) для создания снимка состояния системы, а затем сбрасывает его. это состояние после каждого теста, так что серия тестов может быть выполнена на экземпляре виртуальной машины в быстрой последовательности

PFO
источник
1

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

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

jtimberman
источник
1

Некоторые ответы здесь кажутся немного старыми. Для CI и локального тестирования я хотел бы использовать инструмент для тестирования, например Test Kitchen, который также поддерживает Vagrant, если вы уже использовали его.

Это позволит вам использовать свои coobkooks против многих облачных решений и решений для виртуализации, существующих сегодня: EC2, Digital Ocean, Vagrant, Docker и т. Д.

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

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

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

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

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

romble
источник
Тестирование самой инфраструктуры невероятно важно. Естественно, существует ряд методологий, т. Е. Функциональных и нефункциональных, необходимых для реализации этого несколько иначе, чем программные методологии.