update provision delete commands vagrant virtualbox chef puppet continuous-deployment

provision - ¿Cómo se realiza el despliegue a la producción desde el entorno de desarrollo VirtualBox/Vagrant local?



vagrant update (2)

En el caso de Puppet (es probable que Chef también lo haga), puede compilar el manifiesto (receta) de tal forma que se comporte de manera diferente en su entorno vago, por ejemplo

if $::virtual != "virtualbox" { # not in vagrant include sysctl_tuning }

La pregunta sobre la entrega continua es demasiado amplia en este contexto. Creo que la respuesta sería "sí", por lo que vale.

Recientemente comencé a leer sobre la construcción de entornos de desarrollo con software de virtualización (soy un principiante) y parece que la ''infraestructura como código'' es un concepto realmente poderoso.

Me gusta mucho la estructura de flujo de trabajo que se describe here :

  1. La misma imagen base de VirtualBox se usa en todo el equipo
  2. Vagrant se utiliza para "construir" rápidamente y "aprovisionar" dicha imagen a la configuración necesaria con la ayuda de
  3. Recetas de Chef (o Puppet) que es la única pieza de código necesaria para poner bajo control de versión.

Sin embargo, todavía no entiendo cómo se transfiere y se implementa el código en los servidores de producción.

Según entiendo, la forma común de mantener los entornos DEV y PROD idénticos es administrar la instancia del servidor de producción como solo otra imagen virtual que se aprovisionará con Chef. Puedo tener exactamente el mismo sistema operativo instalado en el servidor de producción que yo (y el equipo) uso a diario con VirtualBox-Vagrant-Chef.

Pero el servidor de producción puede tener hardware que difiere del que se encuentra en el sistema operativo invitado virtual y esto podría generar inconsistencias nuevamente.

Así que aquí está la cuestión:

¿Cuál es la mejor práctica conocida y común para transferir e implementar código en un servidor de producción desde un entorno de desarrollo que se gestiona con la cadena de herramientas VirtualBox-Vagrant-Chef? ¿Esta práctica permite un despliegue continuo?

[Editar]: Nota: ¿Existe alguna práctica de ejecutar la misma instancia de VM aprovisionada con Chef / Vagrant en el servidor de producción, como se muestra en este diagram ?


Soy el autor del artículo que vinculó, entonces mi 0.02

Si entendí correctamente su pregunta, no mueve los vms de dev a producción, crea un proceso repetible que le permite crear el mismo estado final (SO + config + app) una y otra vez, sin importar dónde esté el destino es.

Al usar vagabundo, usted garantiza que sus desarrolladores utilizan el mismo sistema operativo que usan sus servidores de producción sin importar el sistema operativo que usen para el desarrollo.

Al usar Puppet / Chef, usted garantiza que el sistema operativo está configurado de la misma manera ya sea que se ejecute en una máquina virtual con Vagrant, una máquina virtual en producción, una nube virtual o hardware desnudo. No necesita ser virtual.