Pratica migliore per testare le ricette del cuoco?

Il mio team ha creato un gran numero di cookbook chef. Stavo chiedendo quali methods e frameworks dovrei esaminare in modo da poter iniziare a creare test per assicurare che i nostri nodes siano configurati correttamente?

5 Solutions collect form web for “Pratica migliore per testare le ricette del cuoco?”

Potresti (anche) guardare a Vagrant per questo.
Un video mostra come utilizzare il combo dei cookbooks di Vagrant e Chef. E c'è una pagina dedicata a Vagrant e Chef sul sito Opscode (aggiornamento 2015-01-23: la pagina è andata …).

C'è il gem ruby del cucumber-chef e un libro recentemente pubblicato Nelson-Smith et al – "Infrastrutture testate con lo chef" che usa quella gem – http://www.cucumber-chef.org/

Ho appena ricordato questo dalla mia list di controllo di github: https://github.com/gregretkowski/vmth/

Il VMTH (Virtual Machine Test Harness) fornisce un meccanismo per testare l'automazione delle infrastrutture – politiche di fantoccio, ricette del cuoco, script di distribuzione di rilascio, ecc. Utilizza le funzioni dei moderni monitor VM (come qemu) allo stato del sistema di istantanea e quindi ripristina che segue dopo each prova, in modo che una serie di test può essere eseguita su un'istanza VM in rapida successione

Nella mia esperienza, l'unico modo per realizzare questo è con un ambiente di gestione e pratiche di sviluppo attento. Mocking fuori il lavoro effettivo da fare è incredibilmente disordinato e fragile, e le suite di prova CI in esecuzione su impegno o spinta sono un sacco di sforzo per scrivere e mantenere (anche se lo Chef è probabilmente molto meglio di questo Puppet, che è la mia esperienza principale ), e prendere una ridicola quantità di tempo per eseguire.

EDIT

Subito dopo aver scritto questo, ho capito improvvisamente che ci potrebbe essere un modo per fare un test "unit" ragionevolmente efficiente di ricette Chef / Puppet con un file system di unione e una notevole quantità di ponteggi. Tuttavia, non riesco a trovare qualcosa che qualcuno abbia già fatto in questa zona. Mi sarei appena trovato un progetto.

C'è una serie di opzioni.

  • rubygem del cetriolo-cuoco di Stephen Nelson-Smith , con un relativo libro / accompagnamento.
  • minitest cookbook di AJ Christensen.
  • vagante per fornire macchine virtuali di prova grazie a Mitchell Hashimoto

Opscode ha sulla guida dello sviluppo del Chef "no-op" che aiuterà con i test. Noi discutiamo che "no-op" non fa necessariamente quello che vuoi, ma comprendi il desiderio della funzionalità.

Alcune delle risposte qui sembrano un po 'vecchie. Per CI e test locali cercherò di sfruttare uno strumento di cablaggio di prova come Test Kitchen che support anche Vagrant se lo hai già utilizzato.

Ti permetterà di eseguire le tue coobkoos contro molte soluzioni cloud e virtualizzazioni oggi: EC2, Ocean digitale, Vagrante, Docker, ecc.

Inoltre dispone di plugin per consentire di eseguire uno dei tanti strumenti di test dell'infrastruttura esistenti oggi:

  • serverspec – Il framework di test più diffuso.
  • goss – YAML, semplice, binario autonomo, estremamente veloce.
  • inspec – pensate a come serverpec migliorato (scritto dai ragazzi del chef).
  • testinfra – Python basato su test del server.
Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.