Vagrant: Entornos Virtualizados Reproducibles
Automatización del ciclo de vida de máquinas virtuales para desarrollo, pruebas y formación

by David Pestana

Introducción a Vagrant
Entornos virtualizados
Construye y gestiona entornos reproducibles
Automatización
Control del ciclo de vida completo de VMs
Compatibilidad
VirtualBox, VMware, Hyper-V, Docker
¿Por qué usar Vagrant?
Configuración unificada
Un solo Vagrantfile para todo el entorno
Entornos consistentes
Evita el "works on my machine"
Colaboración eficiente
Mismo entorno para todos los miembros del equipo
Provisión automatizada
Shell, Ansible, Puppet, Chef
Componentes principales
Vagrantfile
Define configuración del entorno
Box
Imagen base de la máquina virtual
Provider
Backend de virtualización
Provisioner
Herramienta para configuración automática
Flujo de trabajo básico
Crear Vagrantfile
Definir configuración del entorno
vagrant up
Crear y provisionar la VM
vagrant ssh
Acceder y trabajar en la VM
vagrant halt/destroy
Gestionar ciclo de vida del entorno
Sintaxis básica del Vagrantfile
Vagrant.configure("2") do |config| config.vm.box = "ubuntu/bionic64" config.vm.network "private_network", type: "dhcp" config.vm.provision "shell", inline: <<-SHELL apt update && apt install -y nginx SHELL end
Imagen base
Selección de sistema operativo
Configuración de red
Tipo de red y asignación IP
Provisión
Instalación y configuración de software
Gestión de redes en Vagrant
Provisión automática

Puppet/Chef
Infraestructuras complejas
Ansible
Gestión robusta de configuración
Shell scripts
Comandos simples y directos
Boxes en Vagrant
ubuntu/focal64
Ubuntu 20.04 LTS
centos/7
CentOS 7 estable
generic/debian12
Debian 12 actual
Imágenes base reutilizables disponibles en Vagrant Cloud
Buenas prácticas
Un Vagrantfile por entorno
Mantén la configuración organizada
Provisión idempotente
Usa Ansible para configuraciones repetibles
Sincronización de carpetas
Comparte código entre host y VM
Control de versiones
Versiona tus Vagrantfiles en Git
Made with