Utilizați Test Kitchen pentru a testa automat cărțile de bucate pe orice combinație de platforme și suite de testare:

Chef Workstation

  • Suitele de testare sunt definite într-un fișier kitchen.yml. Consultați documentația de configurare pentru informații despre opțiuni și sintaxă.
  • Suportă testarea cărților de bucate pe mai mulți furnizori de cloud și tehnologii de virtualizare.
  • Folosește un set complet de imagini de bază ale sistemului de operare din proiectul Chef’s Bento.

Conceptele cheie din Test Kitchen sunt:

  • O platformă este sistemul de operare sau mediul țintă pe care urmează să fie testată o carte de bucate
  • O suită este configurația Chef Infra Client, un Policyfile sau o listă de rulare și (opțional) atributele nodului
  • O instanță este combinația dintre o anumită platformă și o suită specifică, fiecărei instanțe i se atribuie un nume generat automat
  • Un driver este ciclul de viață care implementează acțiunile asociate cu o instanță specifică - creați instanța, faceți ceea ce este necesar pentru a converge la acea instanță (cum ar fi instalarea Chef Infra Client, încărcarea cărților de bucate, pornirea unei rulări Chef Infra Client și așa mai departe), configurați orice altceva necesar pentru testare, verificați una (sau mai multe) suite după convergență, apoi distrugeți acea instanță
  • Un provisioner este componenta pe care va fi rulat codul Chef Infra Client, fie folosind chef-zero, fie chef-solo prin intermediul provizionarilor chef_zero și respectiv chef_solo

Bento

Bento este un proiect Chef Software care produce testarea de bază a casetelor VirtualBox, Parallels și VMware pentru mai multe sisteme de operare pentru utilizare cu Test Kitchen. În mod implicit, Test Kitchen folosește imaginile de bază furnizate de Bento, deși imaginile personalizate pot fi, de asemenea, construite folosind HashiCorp Packer.

Șoferii

Test Kitchen folosește o arhitectură de plugin de driver pentru a permite Test Kitchen să testeze instanțe pe furnizori de cloud, cum ar fi Amazon EC2, Google Compute Engine și Microsoft Azure. De asemenea, puteți testa pe mai mulți hipervizori locali, cum ar fi VMware, Hyper-V sau VirtualBox.

Chef Workstation include mulți șoferi de bucătărie de testare obișnuiți.

Majoritatea driverelor au setări de configurare specifice driverului, care trebuie adăugate în fișierul kitchen.yml înainte ca Test Kitchen să poată utiliza platforma respectivă în timpul testării cărții de bucate. Pentru informații despre aceste setări specifice șoferului, vă rugăm să consultați documentația specifică șoferului.

Unele drivere populare:

Driver PluginDescriere
bucătărie-azurermUn driver pentru Microsoft Azure.
bucătărie-cloudstackUn driver pentru CloudStack.
bucătărie-digitalăUn driver pentru DigitalOcean. Acest șofer este expediat în Chef Workstation.
docuri de bucătărieUn șofer pentru Docker. Acest șofer este expediat în Chef Workstation.
bucătărie-dscUn driver pentru Windows PowerShell Desired State Configuration (DSC).
bucătărie-ec2Un driver pentru Amazon EC2. Acest șofer este expediat în Chef Workstation.
bucătărie-googleUn driver pentru Google Compute Engine. Acest șofer este expediat în Chef Workstation
bucătărie-hypervUn driver pentru Microsoft Hyper-V Server. Acest șofer este expediat în Chef Workstation.
bucătărie-openstackUn driver pentru OpenStack. Acest șofer este expediat în Chef Workstation.
bucătărie-rackspaceUn șofer pentru Rackspace.
bucătărie-vagabondăUn șofer pentru HashiCorp Vagrant. Acest șofer este expediat în Chef Workstation.

Validare cu InSpec

Test Kitchen va crea o instanță VM sau cloud, va instala Chef Infra Client la acel sistem și va converge Chef Infra Client cu cartea dvs. de bucate locală. Odată ce acest lucru este finalizat, veți dori să efectuați validarea automată împotriva infrastructurii pe care ați construit-o pentru a valida configurația acesteia. Test Kitchen vă permite să rulați teste InSpec împotriva cărții de bucate convergente pentru validarea locală ușoară a infrastructurii.

bucătărie (executabil)

bucătărie este instrumentul din linia de comandă pentru Test Kitchen, un instrument de testare a integrării întreținut de Chef Software. Test Kitchen efectuează teste împotriva oricărei combinații de platforme folosind orice combinație de suite de testare. Cu toate acestea, fiecare test se face împotriva unei instanțe specifice, care este alcătuită dintr-o singură platformă și un singur set de criterii de testare. Acest lucru permite efectuarea fiecărui test izolat, asigurându-se că comportamentele diferite din cadrul aceleiași baze de coduri pot fi testate temeinic înainte ca aceste modificări să fie dedicate producției.

Orice subcomandă Test Kitchen care nu specifică o instanță va fi aplicată tuturor instanțelor.