Le migliori pratiche per testare le ricette dello chef?


18

Il mio team ha creato un gran numero di libri di cucina per chef. Mi chiedevo quali metodi e framework avrei dovuto esaminare in modo da poter iniziare a creare test per garantire che i nostri nodi siano configurati correttamente?


Sembra che appartenga a cooking.se;)
Mark Henderson

Per un momento ho pensato che parlassi di Chef: en.wikipedia.org/wiki/Chef_%28programming_language%29
Janne Pikkarainen,

Risposte:


7

Potresti (anche) cercare Vagrant per questo.
Un video mostra come utilizzare la combinazione di libri di cucina Vagrant e Chef. E c'è una pagina dedicata a Vagrant e Chef sul sito Opscode (aggiornamento 23-01-2015: la pagina è andata ...).


3

C'è la cucumber-chefgemma rubino e un libro recentemente pubblicato Nelson-Smith et al - "Test-driven Infrastructure with Chef" che utilizza quella gemma - http://www.cucumber-chef.org/

L'ho appena ricordato dalla mia lista di controllo di Github: https://github.com/gregretkowski/vmth/

Il VMTH (Virtual Machine Test Harness) fornisce un meccanismo per testare in modo unitario l'automazione dell'infrastruttura: politiche fantoccio, ricette dello chef, script di distribuzione del rilascio, ecc. Utilizza le funzionalità dei moderni monitor VM (come qemu) per eseguire lo snapshot dello stato del sistema, quindi ripristinare quello stato dopo ogni test, in modo che una serie di test possa essere eseguita su un'istanza di VM in rapida successione


1

C'è un numero di opzioni.

Opscode ha sulla roadmap di sviluppo Chef il supporto "no-op" che aiuterà con i test. Noi sosteniamo che "no-op" non significa necessariamente fare quello che vuoi, ma capire il desiderio per la funzione.


1

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

Ti consentirà di eseguire i tuoi coobkook contro molte soluzioni cloud e di virtualizzazione disponibili oggi: EC2, Digital Ocean, Vagrant, Docker, ecc.

Dispone inoltre di plug-in che consentono di eseguire uno dei numerosi strumenti di test dell'infrastruttura esistenti oggi:

  • serverpec - Il framework di test più popolare.
  • goss - YAML, binario semplice e autonomo, estremamente veloce.
  • inspec: pensalo come serverpec migliorato (scritto dai ragazzi dello chef).
  • testinfra - Framework di test server basato su Python.

0

Nella mia esperienza, l'unico modo per farlo davvero è con un ambiente di gestione temporanea e pratiche di sviluppo accurate. Deridere il vero lavoro da svolgere è incredibilmente disordinato e fragile, e le suite di test CI in esecuzione su commit o push sono un grande sforzo per scrivere e mantenere (anche se Chef è probabilmente molto meglio in questo rispetto a Puppet, che è la mia esperienza principale ) e impiega una quantità ridicola di tempo per correre.

MODIFICARE

Subito dopo averlo scritto, improvvisamente mi sono reso conto che potrebbe esserci un modo per eseguire test "unit" ragionevolmente efficienti delle ricette Chef / Puppet con un filesystem sindacale e una quantità significativa di impalcature. Tuttavia, non riesco a trovare nulla là fuori che qualcuno ha già fatto in quest'area. Potrei essermi appena trovato un progetto.


Testare l'infrastruttura stessa è incredibilmente importante. Naturalmente, ci sono un certo numero di metodologie, vale a dire, funzionali e non funzionali, necessarie per implementarlo in modo leggermente diverso rispetto alle metodologie software.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.