Version Control Vagrant y Ansible virtual box config con la aplicación Rails?

Simplemente estoy configurando una nueva aplicación de Rails y tengo mis files Vagrant junto con una carpeta llena de files de aprovisionamiento de Dev Dev Machine. Estos me permiten activar una máquina virtual de desarrollo, aprovisionarla y tener todo listo y funcionando realmente rápido.

Mi pregunta es, ¿debería todo eso estar en el repository de control de mi versión de proyectos? Trabajaré en este proyecto en varias máquinas para que sea accesible y sincronizado sería útil, pero, por otro lado, no deseo que esos elementos se implementen cuando finalmente lo deployment en producción. Además, tener esos files comprometidos mantendría un historial de ellos que también sería bueno.

¿Qué recomendarías?

Esto es mucho de tu preference personal. Algunas personas mantienen todo en un solo repository autónomo. Otras personas conservan el código de la aplicación en un repository separado de su código de configuration / aprovisionamiento / implementación. De cualquier manera tienen sus propios beneficios y desventajas y no hay ningún error de hacerlo, siempre y cuando se mantenga en algún sistema de control de versiones.

Cuando configuro nuevos proyectos, creo una estructura de directorys con las siguientes características:

/<application_name> ./src ./deployment ./docs 

El código fuente real va en src , las secuencias de commands específicas de la implementación (por ejemplo, directorys de libros de respuestas de Ansible, files Vagrant) se deployment y, por supuesto, cualquier documentation va en docs .

Luego comprometo todo esto con el control de la fuente. Los scripts de implementación se escriben para que se ejecuten desde su directory, pero se cambian al directory src para realizar sus acciones.