Mi equipo ha creado una gran cantidad de libros de cocina de chef. Me preguntaba qué métodos y marcos debería analizar para poder comenzar a crear pruebas para asegurar que nuestros nodos estén configurados correctamente.
Mi equipo ha creado una gran cantidad de libros de cocina de chef. Me preguntaba qué métodos y marcos debería analizar para poder comenzar a crear pruebas para asegurar que nuestros nodos estén configurados correctamente.
Respuestas:
Puede (también) buscar en Vagrant para esto.
Un video muestra cómo usar el combo de libros de cocina Vagrant y Chef. Y hay una página dedicada a Vagrant y Chef en el sitio de Opscode (actualización 2015-01-23: la página se ha ido ...).
Ahí está la cucumber-chef
gema de rubíes y un libro publicado recientemente Nelson-Smith et al - "Infraestructura Test-Driven con el Chef" que hace uso de esa gema - http://www.cucumber-chef.org/
Acabo de recordar esto de mi lista de observación de github: https://github.com/gregretkowski/vmth/
El VMTH (Virtual Machine Test Harness) proporciona un mecanismo para probar de forma unitaria la automatización de su infraestructura: políticas de títeres, recetas de chef, liberar scripts de implementación, etc. Utiliza características de los modernos monitores de VM (como qemu) para capturar el estado del sistema y luego restablecer ese estado después de cada prueba, para que se pueda realizar una serie de pruebas en una instancia de VM en rápida sucesión
Hay varias opciones.
Opscode tiene en la hoja de ruta de desarrollo de Chef soporte "no-op" que ayudará con las pruebas. Nosotros argumentamos que "no-op" no significa necesariamente hacer lo que quiera, pero entendemos el deseo de la función.
Algunas de las respuestas aquí parecen un poco viejas. Para las pruebas de CI y locales, buscaría aprovechar una herramienta de prueba de arnés como Test Kitchen que también es compatible con Vagrant si ya lo ha estado utilizando.
Le permitirá ejecutar sus coobkooks contra muchas soluciones de nube y virtualizaciones hoy en día: EC2, Digital Ocean, Vagrant, Docker, etc.
También tiene complementos que le permiten ejecutar una de las muchas herramientas de prueba de infraestructura que existen hoy en día:
En mi experiencia, la única forma de hacerlo es con un entorno de ensayo y prácticas de desarrollo cuidadosas. Hacer una burla del trabajo real por hacer es increíblemente desordenado y frágil, y las suites de pruebas de CI que se ejecutan en commit o push son mucho esfuerzo para escribir y mantener (aunque Chef es probablemente mucho mejor en esto que Puppet, que es mi experiencia principal ), y tomar una cantidad ridícula de tiempo para correr.
EDITAR
Justo después de escribir esto, de repente me di cuenta de que podría haber una manera de hacer pruebas de "unidad" razonablemente eficientes de recetas de Chef / Puppet con un sistema de archivos de unión y una cantidad significativa de andamios. Sin embargo, no puedo encontrar nada que alguien haya hecho en esta área. Podría haberme encontrado un proyecto.