Tiene un proyecto que tiene algunos requisitos de software para ejecutar (por ejemplo: una versión específica de Apache, una versión de PHP, una instancia de una base de datos MySQL y un par de otras piezas de software).
Ya ha descubierto Vagrant , por lo que su entorno virtual está configurado. Puede crear cajas a partir de sus archivos de configuración y libros de cocina.
También ha comprendido las ventajas de un sistema de integración continua como Jenkins .
Ahora le gustaría combinar estos dos mundos (Vagrant y Jenkins) para obtener el entorno de integración continua perfecto. Para ser más específico, le gustaría no instalar el software requerido por su proyecto en la máquina que ejecuta Jenkins, pero le gustaría utilizar el entorno virtual proporcionado por Vagrant para construir periódicamente su proyecto sobre él. El software CI (Jenkins) construirá la caja Vagrant para usted y construirá y probará su proyecto en la parte superior.
¿Cómo configuraría su entorno para lograr esto?
fuente
Respuestas:
es una buena solución para el sistema de compilación, mi sugerencia:
Probablemente puedas echar un vistazo a veewee , que puede crear una caja vagabunda sobre la marcha.
Aquí está el Make CI más fácil con Jenkins CI y Vagrant como mi guía para esta sugerencia.
fuente
Puede probar el complemento Vagrant para Jenkins que actualmente es compatible con Jenkins CD 1.532.3
Puede ver una demostración de este complemento en http://unethicalblogger.com/2012/03/13/vagrant-plugin-in-action.html
fuente
Personalmente, sugeriría usar Hashicorp Packer para construir sus cajas Vagrant para desarrolladores, y luego usarlo para generar también una imagen de Docker o AWS u OpenStack que puede ejecutar en su sistema CI. Vagrant es una herramienta increíble, pero la sobrecarga de las VM puede ser un poco alta para que un sistema de CI las haga girar constantemente hacia arriba y hacia abajo, especialmente si desea una respuesta realmente rápida.
En un cliente anterior, básicamente arrancamos las máquinas Vagrant una vez con el sistema, y luego ejecutamos las compilaciones Docker / virtualenv dentro de esas VM y las destruimos periódicamente cuando había una actualización importante o un problema con el entorno que no se comportaba correctamente.
https://www.packer.io/docs/builders/openstack.html
fuente