Guía básica de Vagrant
Vagrant es una herramienta de código abierto cuyo objetivo principal es la creación y configuración de ambientes virtuales de desarrollo de manera rápida. La idea de esta guía es dar un pantallazo general al uso de Vagrant en el día a día.
Instalación de Virtualbox & Vagrant
Antes de empezar, necesitas:
– Tener instalado Virtualbox (https://www.virtualbox.org/)
– Tener instalado Vagrant (http://www.vagrantup.com/)
Para ello:
(verificar que la versión de Vagrant que descargamos con wget, sea la ultima estable)
sudo apt-get install dpkg-dev virtualbox-dkms virtualbox wget https://dl.bintray.com/mitchellh/vagrant/vagrant_1.5.2_x86_64.deb sudo dpkg -i vagrant_1.5.2_x86_64.deb
Agregar un box (templates) a nuestro repo local:
vagrant box add precise32 http://files.vagrantup.com/precise32.box vagrant box add precise64 http://files.vagrantup.com/precise64.box
Ver que boxes (templates) tenemos descargados en nuestro repo local:
vagrant box list
Crear nuestro entorno de trabajo & inicializar nuestro vagrantfile:
mkdir -p $HOME/vm-prueba cd $HOME/vm-prueba/ vagrant init
Editar el Vagrantfile
cd $HOME/vm-prueba/ vim Vagrantfile
Modificar donde dice config.vm.box = «base» por alguno de los box que descargamos antes, de modo que quede algo similar a:
config.vm.box = "precise32"
Iniciar nuestra VM:
cd $HOME/vm-prueba/ vagrant up
Conectar a la VM:
cd $HOME/vm-prueba/ vagrant ssh
Apagar nuestra VM:
cd $HOME/vm-prueba/ vagrant halt
Suspender nuestra VM:
cd $HOME/vm-prueba/ vagrant suspend
Reasumir nuestra VM:
cd $HOME/vm-prueba/ vagrant resume
Destruir nuestra VM:
(con todo, se pierde cualquier cambio que hayamos hecho en la VM!, al hacer nuevamente vagrant up, empezaremos desde el box base nuevamente)
cd $HOME/vm-prueba/ vagrant destroy
Carpeta compartida:
Por default, Vagrant al levantar una VM, monta en esta el directorio /vagrant del host (la maquina fisica donde estamos virtualizando).
Es decir, todo lo que en el host se encuentre dentro del directorio /vagrant, va a estar en la maquina virtual, dentro del mismo directorio /vagrant.
Ejecutar un script al iniciar la VM:
Editar el Vagrantfile y agregar una linea similar a esta:
config.vm.provision :shell, :path => "bootstrap.sh"
Luego, en el directorio de nuestra VM ($HOME/vm-prueba/) crear un archivo llamado bootstrap.sh y dentro de este, poner todos los comandos que queremos que se ejecuten al prender la VM..
Por ejemplo:
#!/usr/bin/env bash apt-get update -y apt-get install make -y apt-get install build-essential -y apt-get install openssl -y apt-get install libssl-dev -y apt-get install pkg-config -y apt-get install screen -y apt-get install rsync -y apt-get install htop -y
Al reiniciar la VM, se ejecutarán automáticamente todos esos comandos.