Тестова кухня

Використовуйте Test Kitchen для автоматичного тестування кулінарних книг на будь-якій комбінації платформ та тестових наборів:

Test Kitchen

  • Тестові набори визначаються у файлі kitchen.yml. Ознайомтесь з документацією щодо конфігурації, щоб дізнатися параметри та інформацію про синтаксис.
  • Підтримує тестування кулінарних книг у багатьох постачальниках хмарних технологій та технологій віртуалізації.
  • Використовує повний набір базових зображень операційної системи за проектом Chef’s Bento.

Ключові поняття в тестовій кухні:

  • Платформа - це операційна система або цільове середовище, на якому має тестуватися кулінарна книга
  • Набір - це конфігурація Chef Infra Client, файл політики або список запуску та (необов’язково) атрибути вузла
  • Екземпляр - це комбінація певної платформи та конкретного набору, причому кожному екземпляру присвоюється автоматично сформоване ім’я
  • Драйвер - це життєвий цикл, який реалізує дії, пов’язані з певним екземпляром - створіть екземпляр, виконайте те, що потрібно для зближення на цьому екземплярі (наприклад, встановіть Chef Infra Client, завантажте кулінарні книги, запустіть запуск Chef Infra Client тощо), налаштуйте все, що потрібно для тестування, перевірте один (або кілька) наборів після конвергенції, а потім знищте цей екземпляр
  • Провайзер - це компонент, на якому буде запущений код клієнта інфрачервоного клієнта, використовуючи chef-zero або chef-solo через chef_zero та chef_solo, відповідно.

Бенто

Bento - це проект програмного забезпечення шеф-кухаря, який виробляє базове тестування VirtualBox, Parallels та VMware для декількох операційних систем для використання з Test Kitchen. За замовчуванням Test Kitchen використовує базові зображення, надані Bento, хоча власні зображення також можна створювати за допомогою HashiCorp Packer.

Водії

Test Kitchen використовує архітектуру плагіна драйвера, щоб дозволити Test Kitchen тестувати екземпляри хмарних провайдерів, таких як Amazon EC2, Google Compute Engine та Microsoft Azure. Ви також можете протестувати на декількох локальних гіпервізорах, таких як VMware, Hyper-V або VirtualBox.

Робоча станція «Шеф-кухар» включає багато поширених драйверів для випробувальної кухні.

У більшості драйверів є специфічні для драйвера параметри конфігурації, які необхідно додати до файлу kitchen.yml, перш ніж Test Kitchen зможе використовувати цю платформу під час тестування кулінарних книг. Інформацію про ці налаштування для певного драйвера див. У документації, що стосується драйвера.

Деякі популярні драйвери:

Опис плагіна драйвера
кухня-лазурняДрайвер для Microsoft Azure.
кухня-хмарний стекДрайвер для CloudStack.
кухня-оцифрованийДрайвер для DigitalOcean. Цей водій поставляється на робочому місці шеф-кухаря.
кухня-доккенДрайвер для Docker. Цей водій поставляється на робочому місці шеф-кухаря.
кухня-dscДрайвер для конфігурації бажаного стану Windows PowerShell (DSC).
кухня-ec2Драйвер для Amazon EC2. Цей водій поставляється на робочому місці шеф-кухаря.
кухня-гуглДрайвер для Google Compute Engine. Цей водій поставляється на робочому місці шеф-кухаря
кухня-гіпервДрайвер для сервера Microsoft Hyper-V. Цей водій поставляється на робочому місці шеф-кухаря.
кухня-відкритий стекДрайвер для OpenStack. Цей водій поставляється на робочому місці шеф-кухаря.
кухня-стелажДрайвер для Rackspace.
кухня-бродягаДрайвер для HashiCorp Vagrant. Цей водій поставляється на робочому місці шеф-кухаря.

Перевірка за допомогою InSpec

Test Kitchen створить віртуальну машину або хмарний екземпляр, встановить Chef Infra Client до цієї системи та зблизить Chef Infra Client з вашою місцевою кулінарною книгою. Як тільки це буде завершено, ви захочете виконати автоматизовану перевірку щодо побудованої інфраструктури для перевірки її конфігурації. Test Kitchen дозволяє вам проводити тести InSpec на основі вашої конвертованої кулінарної книги для простої локальної перевірки вашої інфраструктури.

кухня (виконуваний файл)

kitchen - це інструмент командного рядка для Test Kitchen, інструменту інтеграційного тестування, який підтримується Chef Software. Test Kitchen проводить тести на будь-якій комбінації платформ, використовуючи будь-яку комбінацію тестових наборів. Однак кожне тестування проводиться на конкретному екземплярі, який складається з єдиної платформи та єдиного набору критеріїв тестування. Це дозволяє виконувати кожен тест ізольовано, гарантуючи, що різні способи поведінки в одній кодовій базі можуть бути ретельно перевірені до того, як ці зміни будуть застосовані до виробництва.

Будь-яка підкоманда Test Kitchen, яка не вказує екземпляр, буде застосована до всіх екземплярів.