¿La mejor práctica para probar recetas de chef?

Respuestas:

7

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 ...).

Henk
fuente
3

Ahí está la cucumber-chefgema 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

pfo
fuente
1

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.

jtimberman
fuente
1

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:

  • serverpec: el marco de prueba más popular.
  • goss - YAML, binario simple, autónomo, extremadamente rápido.
  • inspec - piense en ello como servidor mejorado mejorado (escrito por los chefs).
  • testinfra: marco de prueba de servidor basado en Python.
Ahmed Elsabbahy
fuente
0

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.

womble
fuente
Probar la infraestructura en sí es increíblemente importante. Naturalmente, hay una serie de metodologías, es decir, funcionales y no funcionales, necesarias para implementar esto de manera ligeramente diferente a las metodologías de software.