Introducción a Vagrant
Que es Vagrant
- Es una aplicación para crear escenarios virtuales de forma sencilla y replicable
- Orientado al uso por desarrolladores o entornos de producción simples
- Puede integrarse con herramientas de gestión de la configuración
- Puppet, Ansible, Chef, Salt
- Forma parte del conjunto de aplicaciones utilizadas en “infrastructura como código”
- Desarrollada inicialmente por Mitchell Hashimoto en 2010
- en su tiempo libre, impacto tremendo
- A partir de vagrant se creó Hashicorp en 2012
- desarrollo buscando los huecos donde puede hacer falta, gran prestigio
- Hashicorp:
- Packer (imágenes de vagrant)
- Consul (descubrimiento de servicios)
- Terraform (aprovisionamiento)
- Vault (seguridad)
- Nomad (despliegue contenedores) ← aka kubernetes
Características
- Software libre (Licencia MIT)
- Escrito en Ruby
- Han contribuido cientos de personas
Problema
- Configurar escenarios a mano es tedioso y provoca errores
- Un desarrollador debe centrarse en el desarrollo
- Los escenarios pueden cambiar
Solución
- Distribuir una “virtual appliance” completamente configurada
- Por ejemplo: OVF o OVA
- Muy pesado
- Difícil de modificar y redistribuir
- Útil para software privativo
Una mejor solución
- Distribuir de forma separada imágenes “limpias” de OS y la configuración completa
- Muy ligero
- Fácil de modificar y redistribuir
- Fácilmente integrable en el flujo de trabajo “devops”
- Muy útil para software libre
Limitaciones de Vagrant
- Configuraciones avanzadas dependen del proveedor
- proveedor = sistema de virtualización usado
- No adecuados para escenarios complejos
- Recursos limitados para entornos en producción en cloud computing