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?
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?
Risposte:
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 ...).
C'è la cucumber-chef
gemma 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
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.
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:
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.